我尝试在论坛上搜索答案,但是我所得到的只是16bit或nasm的输入。我尝试使用
push ecx
push edx
mov edx, offset myVar
mov ecx, sizeof myVar
call readstring
但是它没有按照我的预期工作。我试图将字符串/字符作为输入并将其递增(从A到B),然后将其打印在屏幕上。我的代码:
include irvine32.inc
.data
myVar BYTE ?
myVar2 BYTE ?
shifts DWORD 3
.code
main proc
push ecx
push edx
mov edx, offset myVar
mov ecx, sizeof myVar
call readstring
mov esi, offset [myVar]
mov al,[esi]
mov myVar2, al
mov eax, DWORD PTR myVar2
add eax, shifts
mov DWORD PTR myVar2,eax
mov edx, offset myVar2
call writestring
exit
main endp
end main
如果我用一个字符初始化myVar并递增它,代码工作正常,但是(添加了一个垃圾ascii字符也会导致结果,我也不知道为什么),所以我知道问题出在输入上。
答案 0 :(得分:0)
对不起,Book给出了答案。
?