微型计算机原理IMUL指令,微机原理与接口技术:乘、除法指令

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我们立即下架或删除。

简介:3. 乘法指令 MUL,IMUL,AAM

乘法指令包括无符号数乘法指令 MUL、有符号数乘法指令 IMUL 和乘法的十进制调正

指令 AAM。8088/8086CPU 乘法指令能实现字节乘法和字的乘法。字节乘法的乘积为 16 位

存放在 AX 中,字的乘法的乘积为 32 位存放在 DX:AX。指令的目的操作数采用隐含寻址方

式。

(1)无符号数乘法指令 MUL

指令格式: MUL src

功能:如果 src 为字节类型,累加器 AL 与 src 相乘,结果存在 AX 中;如果 src 为字类

型累加器 AX 与 src 相乘,结果存在 DX:AX 中。

说明:两个乘数的数据类型要相同,指令影响标志位 CF,OF 位。

例如:

MUL AH ;AL×AH 结果保存在 AX 中。

MUL BX ;AX×BX 结果保存在 DX:AX 中。

MUL BYTE PTR[SI] ;AL×[SI]结果保存在 AX 中。

MUL WORD PTR[BX+DI] ;AX×[BX+DI]结果保存在 DX:AX 中。

字节相乘的乘积在 AX 中,如果标志位 CF=OF=1,表明 AH 不为 0;字相乘的乘积在

DX:AX 中,如果标志位 CF=OF=1,表明乘积的高位 DX 不为 0。

(2)有符号数乘法指令 IMUL

指令格式: IMUL src

功能:指令的功能和用法与 MUL 指令相同,只是操作数为带符号数,结果也是带符号

数。说明:指令影响标志位 CF、OF 位。如果标志位 CF=OF=0,表明乘积的高位部分

是低位的符号扩展,可以忽略。如果标志位 CF=OF=1,表明 DX 含有乘积的高位,不

能忽略。

(3)乘法的十进制调正指令 AAM

AAM 指令完成 AL 中数的调正。使用 AAM 的前提是两个非压缩 BCD 码相乘,乘积在

AL 中,AH=0。

指令格式:AAM

功能:把 AL 寄存器的内容除以 0AH,商存在 AH 中,余数存在 AL 中。

例如:

MOV AL, 8

MOV BL, 7

MUL BL

AAM ;AH=5,AL=6

4. 除法指令 DIV,IDIV,CBW,CWD,AAD

除法指令包括无符号数除法指令 DIV,带符号数除法指令 IDIV。这两条指令都隐含了

被除数 AX 或 DX:AX,除数可以是寄存器或存储器操作数,但不能是立即数。被除数的字

长要求是除数字长的两倍,如果除数是字节类型,被除数必须是字类型而且要预置在 AX 中;

如果除数为字类型,被除数必须是双字类型而且要预置在 DX:AX 中。

(1)无符号数除法指令 DIV

指令格式: DIV OPRD

功能:如果 OPRD 是字节类型,被除数 AX 除 OPRD,结果的商存到 AL 中,余数存到

AH 中;如果 OPRD 是字类型,被除数 DX:AX 除 OPRD,结果的商存到 AX 中,余数存到

DX 中。

说明:在指令执行前,必须检查被除数的长度,如果不符合要求,要用位扩展指令来转

换。

例如:

DIV BL

DIV BX

DIV BYTE PTR[SI]

DIV WORD PTR[DI]

如果字节操作的结果大于 FFH 则溢出,如果字操作的结果大于 FFFFH 则溢出,溢出将

产生除法错中断。

(2)带符号数的除法 IDIV

IDIV 指令与 DIV 指令相似,只是参加运算的是带符号数,结果也是带符号数,符号与

被除数一致。如果是字节除法,操作结果超出-127~+127 的范围,则产生除法错中断;如果

是字除法,操作结果超出-32767~+32767 的范围,产生除法错中断。在指令执行前,必须检

查被除数的长度,如果不符合要求,要用位扩展指令来转换。

指令格式: IDIV OPRD

例如:

MOV AL, 98H

MOV BL, 13H

CBW ;将 AL 中的数据扩展为 16 位。

IDIV BL

结果 AX=F7FBH,AL 中的 FBH 为商,是负数,AH 中的 F7H 为余数。

(3)符号扩展指令 CBW,CWD

除法指令对操作数的长度严格要求,如果长度不符合要求,可以使用符号扩展指令对数

据类型进行调整。指令不影响标志位。

 指令格式:CBW

功能:字节转换为字,如果 AL<80H,则 AH 置 0;如果 AL≥80H,则将 FFH 赋给 AH。

说明:将 AL 中的数的符号位扩展至 16 位,扩展的符号部分存入 AH 中,即由 AL 扩

展为 AX,值保持不变。

例如:... 更多>>

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值