被乘数 乘数 积
al 8位操作数 ax
ax 16位操作数 dx:ax
eax 32位操作数 edx:eax
因为如果我们的乘数是一个8位操作数的话,我们的结果存在在ax寄存器中。 如果是16位操作数的话,我们的结果存放在dx:ax中。如果dx不为0,则进位标志置位。
在执行完mul指令后,我们一般要检查下进位标志。因为我们需要知道乘积的高半部分是否可以安全的忽略。
例如:
mov al, 6h
mov bl, 10h
mul bl
此刻我们检查进位标志cf = 0, 那么ah我们就可以将其忽略了,所以结果是60h。
那么我们再来举一个例子:
例如:
mov ax, 6000
mov bx, 5000
mul bx
我们检查进位标志,此时cf = 1。 那么我们的结果是dx:ax ,此时我们的dx = 1E00, ax = 0000 所以 最后我们的积 为 1E000000。
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css-jiaocheng/tc58872.shtml