mov [reg],reg不工作
我似乎无法弄清楚在x86中。 该程序不断崩溃,我的书说,只要reg在内存中保存一个位置,我就可以使用[reg]插入到内存中:
.data
Counter BYTE 4;
Prompt BYTE "Enter an Integer: ", 0
UserInput DWORD 10 DUP(?)
.code
PromptUser PROC
mov edx, OFFSET Prompt
call WriteString
ret
PromptUser ENDP
ReadUserInput PROC
mov edx, OFFSET UserInput
add edx, DWORD PTR Counter
call ReadInt
mov [edx], eax //ISSUE IS HERE
即使我在调用ReadInt之后移动movs,它仍然不起作用。
这不会很好地结束:
Counter BYTE 4
add edx, DWORD PTR Counter
你只有一个byte
,但你把它看作是一个dword
。 您最终不仅要添加Counter
的值,还要添加Prompt
字符串的前3个字节。
最简单的解决方案是使Counter
成为dword
。 如果你绝对必须保持它的一个字节,你可以做一些事情:
movzx eax, BYTE PTR Counter
add edx,eax
链接地址: http://www.djcxy.com/p/85893.html