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