assembly 如何更改MASM32中输入键盘的字符串中的一个或多个字符

jexiocij  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(100)
movzx eax, byte ptr [a]
movzx ebx, byte ptr [m]
add al, bh

字符串
我使用了上面的命令,但程序没有显示任何内容
我想根据凯撒密码改变字符,也就是说,字母a到B,c,d随着键盘上输入的数字之间的变化例如m=1然后a到b m=2然后a到c

9fkzdhlc

9fkzdhlc1#

add al, bh

字符串
我使用了上面的命令,但程序没有显示任何内容
您实际上并没有将任何内容输出到屏幕上,所以我理解您在这里使用了“show”这个词,因为加法add al, bh并没有改变AL寄存器。
其原因是由于movzx ebx, byte ptr [m]指令,BH寄存器为零。所以这是一个错字,你的意思是把BL添加到AL。因为你写的是32位代码,所以最好是add eax, ebx

; Caesar cipher loop
    movzx ebx, byte ptr [m]  ; CONST
.a: movzx eax, byte ptr [a]  ; Current character
    add   eax, ebx
    cmp   eax, "z"
    jbe   .b
    sub   eax, 26
.b: mov   byte ptr [a], al
    ...

相关问题