ASM x86整数溢出

时间:2012-11-15 03:29:06

标签: html assembly x86

GetLCM PROC
tryAgain:
   mov bx, 0
   inc Multiple
   mov ax, UserInputNum1              ;Move UserInputNum1 to the 16 bit Register
   mov bx, Multiple
   div bx                             ;<-------Error here
   cmp dx,0                           ;If dx is not zero then there is a remainder
   jne tryAgain                       ;If not equal jump
ret
GetLCM ENDP

尝试对这两个数字进行div时,我不断收到整数溢出错误。当我尝试使用div时,它会中断。

我正在尝试找到用户输入的两个数字的最小公倍数。我决定先尝试将每个数字除以找到素数,然后每次找到一个数字与用户输入的另一个数字进行比较。当然我会同时做这两个数字,但截至目前我正试图解决这个错误。

这只是我在ASM的第五周,所以我有点混淆为什么会这样。 另外我想补充一点,我也希望能够为32位数字工作。我的想法是使用指针。这是一个很好的方法吗? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:4)

xor dx, dx

之前的某个地方

div

答案 1 :(得分:2)

再次阅读div指令。什么除以什么?你缺少将其中一个操作数设置为一些合理的值。