MUL与IMUL区别(微机原理与接口技术 第2版)课后习题3.14、P123

MUL与IMUL的详细区别

乘数位数隐含的被乘数乘积的存放位置举例
8位ALAX中MUL BL
16位AXDX与AX中(DX存放高16位、AX存放低16位)MUL BX
课本P97例题

一)、将以下指令中的立即数看作是无符号数实现相乘:

MOV AL,0B4H		;AL=B4H=180   解释以下,只要十六进制数以字母为开头的都要在开头加0表示区分十六进制数与一些常见指令的区别  例如0B4H、74H、0A12H
MOV BL,11H		;BL=11H=17
MUL BL			;AX=0BF4H=3060

解释:首先MUL BL就是将AL×BL=不带符号的结果存放到AX中
即计算0B4H×11H无符号
步骤①H—>B(十进制变二进制)
步骤②B—>D(二进制变十进制)
步骤③俩数相乘结果为十进制D—>转换为十六进制H

按步骤来:
①:
0B4H ---> 1011 0100(B)
1011 0100(B) ---> 180(D)

11H ---> 0001 0001(B)
0001 0001(B) ---> 17(D)
②:
180(D)×17(D)=3060(D)
③:
3060(D) ---> 0BF4H
即最后结果AX里面存放的值为0BF4H

二)、将以下指令中的立即数看作是带符号数实现相乘:

MOV AL,0B4H		;AL=B4H=-76 
MOV BL,11H		;BL=11H=17
MUL BL			;AX=FAF4H=-1292

解释:首先IMUL BL就是将AL×BL=带符号的结果存放到AX中
即计算0B4H×11H有符号
步骤①H—>B(十进制变二进制)
步骤②B—>求其对应补码(所得二进制求其补码)
步骤③其对应补码—>D(求其对应补码结果转换为十进制)
步骤④俩数相乘结果为十进制D—>转换为二进制B(相乘结果转换为二进制)
步骤⑤转换成的二进制—>求其对应补码(所得二进制结果求其补码)
步骤⑥其对应补码—>转换为其对应的十六进制H(所得其补码转换为其对应的十六进制数)

按步骤来:
①:
0B4H ---> 1011 0100(B)
11H ---> 0001 0001(B)
②:求其对应补码
1011 0100(B) ---> 1100 1011(其反码) ---> 1100 1100(其补码)
11H为正数,其补码为本身 0001 0001(其补码)
③:
1100 1100(B补码) --> -76(D)
0001 0001(B补码) ---> 17(D):
-76(D)×17(D)=-1292(D)
-1292(D) ---> 1000 0101 0000 1100(B):1000 0100 0000 1100(B) ---> 1111 1011 1111 0011(其反码) ---> 1111 1011 1111 0100(其补码)
⑥:1111 1011 1111 0100(其补码) ---> FAF4(H)
即最后结果AX里面存放的值为FAF4H
以课后习题为例p123

3.14 设AL=-86,BL=21,在分别执行MUL BL与IMUL BL指令后,各自的结果是什么?

一)IMUL
AL --->  -86(D) ---> 1101 0110(B)
BL --->   21(D) ---> 0001 0101(B)
-86×21=-1806(D) ---> 1000 0111 0000 1110(B) ---> 1111 1000 1111 0001(其反码) ---> 1111 1000 1111 0010(其补码) ---> F8F2(H)
二)MUL
AL ---> -86(D) ---> 1101 0110(B) ---> 214(D)
BL --->  21(D)
214(D)×21(D)=4494(D) ---> 118E(H)
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond谚语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值