0
我正在用MASM編寫程序來創建和減去三個32位整數。我的問題是,從30000
減去9000
似乎導致27000
,當21000
預計。源如下:使用SUB指令時出現意外輸出
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
預期。這裏發生了什麼?
您是否熟悉十六進制? – 2013-02-23 10:33:07
@OliCharlesworth:我是。我沒有意識到'h'表示十六進制格式。 – 2013-02-23 10:34:23