我有一个将 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 我们 mul BX? 而不是BL?但是BL中不是num3吗?
对不起,没有一个具体的问题。如果我的逻辑不正确或接近,你能解释一下发生了什么,为什么?
谢谢