Я пишу программу в MASM для создания и вычитания трех 32-битных целых чисел. Моя проблема заключается в том, что 9000
вычитается из 30000
, что приводит к 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
ожидается. Что тут происходит?
Вы знакомы с шестнадцатеричным? –
@OliCharlesworth: Я. Я не понимал, что 'h' указывает шестнадцатеричную форму. –