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
これらの2つの数値を除算しようとすると、整数オーバーフローエラーが発生し続けます。divを使おうとすると壊れます。
ユーザーが入力した2つの数値の最小公倍数を見つけようとしています。最初に素数を見つけるために各数値を除算してから、1つが見つかるたびに、ユーザーが入力した他の数値と比較することにしました。もちろん、両方の数値を同時に実行しますが、現時点では、このエラーを乗り越えようとしています。
これはASMでの私の5週目なので、なぜこれが起こっているのか少し混乱しています。また、これを32ビット数でも機能させたいと付け加えたいと思います。私の考えは、ポインターを使用することです。これはこれを行うための良い方法ですか?助けてくれてありがとう!