ASM x86 entero desbordamiento [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Por qué EDX debe ser 0 antes de usar la instrucción DIV? [duplicar] 2 respuestasGetLCM 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
Sigo recibiendo un error de desbordamiento de enteros cuando intento dividir estos dos números. Se rompe cuando trato de usar div.
Estoy tratando de encontrar el mínimo común múltiplo de dos números ingresados por el usuario. Decidí tratar de dividir cada número para encontrar primero los números primos y luego comparar cada vez que se encuentra uno con el otro número que ingresó el usuario. Por supuesto que estaría haciendo los dos números al mismo tiempo, pero a partir de ahora estoy tratando de superar este error.
Esta es solo mi quinta semana en ASM, así que estoy un poco confundido de por qué sucede esto. También me gustaría agregar que también me gustaría hacer que esto funcione para números de 32 bits. Mi idea es usar punteros. ¿Es esta una buena manera de hacer esto? ¡Gracias por cualquier ayuda!