2
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 时它会中断。

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

这只是我在 ASM 的第五周,所以我有点困惑为什么会这样。另外我想补充一点,我也想让这项工作也适用于 32 位数字。我的想法是使用指针。这是一个好方法吗?谢谢你的帮助!

4

2 回答 2

5

xor dx, dx在你之前的某个地方div

于 2012-11-15T03:37:38.917 回答
2

再次阅读div说明。什么被什么划分?您缺少将其中一个操作数设置为某个合理的值。

于 2012-11-15T03:37:49.253 回答