Я пытаюсь написать программу, которая получает строку, содержащую номер, и поместить в суммированную сумму сумму цифр числа, которое получила функция. это то, что я написал, но он не работает, и я не знаю, почему:Номер печати После использования 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 - Он не выводит правильный номер, и он падает через секунду. –