Целочисленное переполнение в ASM x86 [дубликат]

На этот вопрос уже есть ответ здесь:

Почему EDX должен быть 0 перед использованием инструкции DIV? [Дубликат] 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-битных чисел. Моя идея состоит в том, чтобы использовать указатели. Это хороший способ сделать это? Спасибо за любую помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос