-3
我正在试图在汇编中执行rot13,其中您必须输入10个小写字母并在rot13加密后输出它。但是,它不能正常工作。我不知道如何解决它,因为我最近刚开始学习汇编。请帮帮我。汇编语言中的Rot13混淆无法正常工作
.model small
.data
arr dd 10 dup(?), '$'
.stack 100h
.code
main proc
mov ax, @data
mov ds, ax
mov si, 0
scan: ; gets input from user
mov ah, 01h ; get input
int 21h
mov bx, offset arr
mov byte ptr [bx+si], al
add si, 1 ; increment si <-- array index
cmp si, 9 ; compare si to 9
jle scan ; (loop) if si <= 9, jump to scan
mov si, 0
print: ; display the input of user
mov al, [si]
cmp al, 'n'
jb plus
cmp al, 'n'
jae minus
plus:
mov al, [si]
add al, 13
jmp alwaysRun
minus:
mov al, [si]
sub al, 13
alwaysRun:
mov dl, al
mov ah, 02h ; print
int 21h
add si, 1
cmp si, 9
jle print
mov ax, 4c00h
int 21h
main endp
end main
“这是不正常工作”是*从来没有一个很好的错误描述,请修改。你有什么尝试?你在运行调试器吗? – 2014-09-12 13:13:21
学习自己使用调试器。浏览代码,看看它做了什么你不打算的东西。 – Jester 2014-09-12 13:13:58