ASM x86 Integer Overflow [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Warum sollte EDX 0 sein, bevor der DIV-Befehl verwendet wird? [Duplikat] 2 Antworten
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

Ich bekomme immer wieder einen Integer-Überlauffehler, wenn ich versuche, diese beiden Zahlen zu dividieren. Es bricht, wenn ich versuche, div zu verwenden.

Ich versuche, das kleinste gemeinsame Vielfache von zwei vom Benutzer eingegebenen Zahlen zu finden. Ich habe mich dazu entschlossen, jede Zahl zu teilen, um zuerst Primzahlen zu finden, und dann jedes Mal zu vergleichen, wenn eine mit der anderen vom Benutzer eingegebenen Zahl gefunden wird. Natürlich würde ich beide Nummern gleichzeitig machen, aber jetzt versuche ich, diesen Fehler einfach zu überwinden.

Dies ist erst meine fünfte Woche in ASM, daher bin ich ein wenig verwirrt, warum dies geschieht. Außerdem möchte ich hinzufügen, dass ich diese Funktion auch für 32-Bit-Nummern verwenden möchte. Meine Idee ist es, Zeiger zu verwenden. Ist dies ein guter Weg, um dies zu tun? Danke für jede Hilfe!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage