次のプログラムは問題なく動作しますが、これまで理解できていない1ステップを理解する必要があります。アセンブリの分割 - MASM
最初にコードを見てください:私は自分の質問がどこにあるのかという問題の右にコメントを表示します。
.data
mesg byte "How many miles did you fill:", 0dh, 0ah, 0
mesg1 byte "How many gallons did you drive:", 0dh, 0ah, 0
mesg2 byte "Your car goes miles per gallon:", 0dh, 0ah, 0
miles DWORD ?
gallons DWORD ?
.code
main proc
mov EDX, OFFSET mesg
call writestring
call readint
mov miles, EAX
mov EDX, OFFSET mesg1
call writestring
call readint
mov gallons, EAX
mov EDX, OFFSET mesg2
call writestring
mov eax, miles
mov ebx, gallons
SUB EDX, EDX <-----what dose this do? because if i didn't do it, i get junk result
div ebx
call writeint
exit
main endp
end main
これは、そのレジスタの値をゼロにクリアする方法です。 –
'edx = edx - edx'この後の結果はどう思いますか? –