これが私のコードです:
.data
ans1 db 0
ans2 db 0
.data?
in1 db 100 dup(?) ; first input value
in2 db 100 dup(?) ; second input value
.code
start:
; here I have code for input
; I get 2 nums, and I want to multiply and divide them
; here is what I already have to mul/div them:
lea eax, in1
lea edx, in2
imul eax ; multiply in1 and in2
mov ans1, eax ; move result to ans1
xor eax, eax ; clear register
xor edx, edx ; " "
lea eax, in1
lea edx, in2
idiv eax ; divide in1 by in2
mov ans2, eax ; move result to ans2
lea eax, ans1
push eax
call StdOut ; print ans1 (I have include instructions at the start)
lea ebx, ans2
push ebx
call StdOut ; print ans2 ("")
私の質問:1。正確にどのレジスタを配置in1
し、in2
それらを乗算しますか?2. ""それらを分割するには?3.残りは部門のどこに保管されますか?
そして、一般的なステートメントについて心配する必要はありません。乗算と除算で確実に(可能な限り)機能するレジスタを教えてください。
注:この投稿はx86アセンブリの繰り返しであると言う人もいるかもしれません-masm32:乗算と除算の絶対的な内訳ですが、(間違っている場合は訂正してください)フォーラムコミュニティでは、追加するよりも新しい投稿を作成する方が尊重されます古いものにコメントし、トピックから外します。