3 개의 32 비트 정수를 생성 및 감산하기 위해 MASM에 프로그램을 작성하고 있습니다. 내 문제는 에서 9000
을 뺀 것이 21000
일 때 27000
이 표시되는 것입니다. 다음 원본은 다음에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 결과 : 바와 같이
, 0021000
가 예상되는 경우 EBX
의 값 00027000
이다. 무슨 일 이니?
16 진수에 익숙합니까? –
@OliCharlesworth : 안녕하세요. 나는'h'가 16 진수 형식임을 나타냅니다. –