首页 > 解决方案 > 除以负小数并显示在消息框中

问题描述

我正在尝试除以负数。我读到我需要使用idiv,但它仍然输出5而不是-5

.386
.model flat,stdcall
option casemap:none

include \masm32\include\masm32rt.inc

.data
AnswerTxt   db   'The answer is '
AnswerNum   db   11 dup(0)
num_a dd 5

.code
start:
     xor edx, edx
     mov eax, -25
     mov ebx, num_a
     idiv ebx

     push offset AnswerNum
     push ebx
     call dwtoa
     push 0
     push offset AnswerTxt
     push offset AnswerTxt
     push 0
     call MessageBoxA
     call ExitProcess
end start

更新(问题已解决):

.386
.model flat,stdcall
option casemap:none

include \masm32\include\masm32rt.inc

.data
AnswerTxt db 'The answer is '
AnswerNum db 11 dup(0)
num_a dd 5

.code
start:
     mov eax, -25
     mov ebx, num_a
     cdq
     idiv ebx

     push offset AnswerNum
     push eax
     call dwtoa
     push 0
     push offset AnswerTxt
     push offset AnswerTxt
     push 0
     call MessageBoxA
     call ExitProcess
end start

标签: assemblyx86masmmasm32

解决方案


推荐阅读