如何在汇编中接受字符串输入

时间:2018-07-02 13:59:57

标签: assembly x86 masm 32-bit irvine32

我尝试在论坛上搜索答案,但是我所得到的只是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字符也会导致结果,我也不知道为什么),所以我知道问题出在输入上。

1 个答案:

答案 0 :(得分:0)

对不起,Book给出了答案。

?