我堅持寫我的程序 這裏就是我想要它做的事:MASM比較未初始化的緩衝區
- 顯示歡迎信息控制檯內
- 等待用戶從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,如果我打印數據的值(與STDOUT)它顯示了我,我已經把準確的數值。那爲什麼它不工作?
在此先感謝
什麼是StdIn和StdOut?它們是來自MASM發行版的宏還是函數?我沒有任何現代的MASM分配方便檢查。 – atzz 2010-10-03 13:53:13
我會建議使用NASM,它有一個更清晰的sintax。 – ruslik 2010-10-03 13:54:33