3 つの 32 ビット整数を作成および減算するプログラムを MASM で作成しています。私の問題は、9000
から減算すると、が予想されるとき30000
に、 になるように見えることです。ソースは次のとおりです。27000
21000
TITLE Add and Subtract
; This program adds and subtracts 32-bit integers.
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD
DumpRegs PROTO
.code
main PROC
mov eax,50000h ; EAX = 50000h
mov ebx,30000h ; EBX = 30000h
mov ecx,43h ; ECX = 43h
sub eax,10000h ; EAX = 40000h
sub ebx,9000h ; EBX = 21000h
sub ecx,1h ; ECX = 42h
call DumpRegs
INVOKE ExitProcess,0
main ENDP
END main
DumpRegs の結果は次のとおりです。
示されているように、EBX
の値はが期待される00027000
場合です。0021000
何が起きてる?