我正在嘗試編寫一個程序,該程序獲取包含數字的字符串,並將Sum2變量放在該函數獲得的數字的數字之和中。這是我寫的,但它不工作,我不知道爲什麼:打印數字使用div和mod後不工作MASM
.386
.MODEL Flat, STDCALL
option casemap:none
SomeFunc proto :DWORD
include \masm32\include\windows.inc
include \masm32\include\msvcrt.inc
includelib \masm32\lib\msvcrt.lib
.data
Sum2 dd ?
stop db 0
fmt db '%s',0
.code
SomeFunc proc Number:DWORD
Lop:
mov eax,Number
mov ebx,'10'
xor edx,edx
div ebx
add Sum2,edx
mov Number,eax
cmp Number,0
jna Lop
ret
SomeFunc endp
start:
invoke SomeFunc,'123'
invoke crt_printf,offset Sum2,offset fmt
end start
我真的不明白爲什麼它不工作,我如何使它發揮作用。 有人可以解釋我嗎? 對不起,我的英語不好。 感謝您的幫助。
確切地定義什麼_「它不工作」_的意思。 – Michael
@Michael - 它沒有輸出正確的數字,並在一秒鐘後崩潰。 –