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
9fkzdhlc1#
add al, bh
字符串我使用了上面的命令,但程序没有显示任何内容您实际上并没有将任何内容输出到屏幕上,所以我理解您在这里使用了“show”这个词,因为加法add al, bh并没有改变AL寄存器。其原因是由于movzx ebx, byte ptr [m]指令,BH寄存器为零。所以这是一个错字,你的意思是把BL添加到AL。因为你写的是32位代码,所以最好是add eax, ebx:
movzx ebx, byte ptr [m]
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 ...
型
1条答案
按热度按时间9fkzdhlc1#
字符串
我使用了上面的命令,但程序没有显示任何内容
您实际上并没有将任何内容输出到屏幕上,所以我理解您在这里使用了“show”这个词,因为加法
add al, bh
并没有改变AL寄存器。其原因是由于
movzx ebx, byte ptr [m]
指令,BH寄存器为零。所以这是一个错字,你的意思是把BL添加到AL。因为你写的是32位代码,所以最好是add eax, ebx
:型