3 つの数値を乗算するプログラムがあり、理解しようとしています。いくつか質問がありますが、誰かがプログラムで何が起こっているのかを説明し、私が正しい方向に進んでいるかどうか教えてくれることを願っています. 複数の質問があることは理解しています。申し訳ありません。
.data?
num1 dd ?
num2 dd ?
num3 dd ?
.data
sum dd 0
prod dd 0
.code
start:
main proc
mov EAX, sval(input("Enter a number: "))
mov num1, EAX
mov EAX, sval(input("Enter a number: "))
mov num2, EAX
mov EAX, sval(input("Enter a number: "))
mov num3, EAX
mov EAX, num1
mov EBX, num2
mul BL
mov EBX, num3
mul BX
mov prod, EDX
これは私を混乱させました...
mov EBX, num3
mul BX
では、num3 を BL に格納していますか? しかし、num1 と num2 の結果は 16 ビットであり、AX に格納されるため、BX を mul しますか? BLの代わり?BLでnum3じゃないの?
申し訳ありませんが、特定の質問はありません。私の論理が間違っているか近い場合は、何が起こっているのか、その理由を説明できますか?
ありがとうございました