我一直在写我的程序这就是我想要它做的事情:
- 在控制台中显示欢迎消息
- 等待用户输入一个从 0 到 9 的数字]
- 将该数字与 0 进行比较
- 如果是则显示消息,否则退出
这是我目前拥有的:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
include \masm32\include\masm32.inc
includelib \masm32\lib\masm32.lib
.data
capt db "SCHiM says: ",0
txt db "Enter a number 0-9:",0
.data?
data db ?
.code
start:
call AllocConsole
push offset txt
call StdOut
push 1
push offset data
call StdIn
mov al, data
cmp al, 0h
jz eqzero
invoke ExitProcess, NULL
eqzero:
push offset capt
call StdOut
push offset data
call StdOut
endloop:
jmp endloop
invoke ExitProcess, NULL
end start
该程序完美地组装和链接,没有任何警告或错误但是 cmp 总是返回 1,如果我打印 data 中的值(使用 StdOut),它会显示我输入的确切值。那么为什么它不起作用?
提前致谢