微机原理学习笔记——运算类指令

目录

带进位加ADC和减SBB指令

 比较指令CMP

 增量INC和减量DEC指令

求补指令NEG

 符号扩展指令CBW和CWD

乘法指令MUL和IMUL

除法指令DIV和IDIV


带进位加ADC和减SBB指令

(1)带进位的加指令

指令格式:ADC DEST,SRC

功能:与ADD相同,相加时要加上CF进位的当前值。

注意事项:DEST、SRC不能同时为存储器mem,SRC可以是立即数imm,运算结果对状态标志位有影响。

(2)带进位的减指令

指令格式:SBB DEST,SRC

功能:与SUB功能相同,相减时还应减去CF进位的当前值。

注意事项:DEST、SRC可以是存储器mem或寄存器reg,但不能同时为存储器,运算结果对状态标志位有影响。

(3)带进位加减例题


 比较指令CMP

指令格式:CMP OPR1,OPR2;  OPR1-OPR2结果影响标志位。

功能:做两个数的比较,与减法指令一样执行opr1-opr2操作,但是差值不回送目的操作数,只是根据相减的结果做出判断。

注意事项:OPR1、OPR2可以是存储器mem或寄存器reg,但是不能同时为存储器mem,OPR2可以是立即数imm,运算结果对状态标志位有影响。

比较结果有三种可能:AX>BX   AX<BX   AX=BX。

例题


 增量INC和减量DEC指令

(1)语法格式:INC  reg/mem。 DEC reg/mem。

(2)INC reg/mem 对指定的操作数进行加1操作,其操作数可以是任意一个通用寄存器,也可以在内存单元中,该指令影响状态标志位,但是不影响CF。

(3)DEC reg/mem 对指定的操作数进行减1操作,操作数可以是任意一个通用寄存器,也可以在内存单元中,减1时,把操作数看作为无符号的二进制数,该指令影响状态标志位,但是不影响CF。

(4)例题求5个序数之和


求补指令NEG

语法格式:NEG reg/mem

注意事项:如果是存储器mem需要指明它是字操作还是字节操作。

例题求补运算


 符号扩展指令CBW和CWD

格式:CBW是将AL中的符号位扩展到AH中,形成一个字AX。 CWD是将AX中的符号位扩展到DX中,形成双字(DX.AX)

注意事项:CBW表示将AL中的符号位的数扩展到或者叫覆盖到AH,即根据AL中的D7位来扩展,

CWD表示将AX中符号位数扩展到DX中,即根据AX的D15位来扩展。


乘法指令MUL和IMUL

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

格式:MUL SRC ;(AX)(AL)×(opr)字节乘法
(DX,AX)(AX)×(opr)字乘法

要求:字节运算时,目的操作数也就是被乘数必须是累加器AL,做乘法运算时要先把乘数设置好,被乘数和乘数之间是隐含的关系、都是无符号数,乘积会存放在寄存器AX中。

           字运算时,目的操作数必须是累加器AX,乘积在寄存器DX,AX中,源操作数src不允许使用立即数。

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

格式:IMUL SRC ;(AX) (AL)×(opr)字节
;(DX,AX) (AX)×(opr)字

要求:同无符号数。

(3)乘法指令运算结果影响状态标志,但对OF、CF有特殊的定义,以下是助记规则。


除法指令DIV和IDIV

(1)无符号除法指令DIV(被除数和结果隐含)

格式:DIV SRC;

字节操作:

        (AX)(AH)/(SRC)除法余数

        (AX)(AL)/(SRC)除法的商

字操作:

       (DX,AX) (AX)/(SRC)是除法的商

       (DX,AX)(DX)/(SRC)是除法的余数

(2)有符号数除法指令IDIV(被除数和结果隐含)

格式:IDIV SRC;

字节操作:与无符号一致。

字操作:与无符号一致。

需要注意的点:

(1)除数为0,会产生0型中断

(2)除法指令运算结果对标志状态位无定义

(3)除法指令要求是字操作时,被除数是必须是32位、除数是16位,商和余数是16位;字节操作时,被除数必须是16位,除数是8位,商和余数是8位,所以就是被除数必须大于除数。

(4)有符号与无符号除法完成的操作都是相同的,只是做有符号数时,操作数是有符号的,得到的商和余数也是有符号的,余数的符号同被除数符号相同。

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小黄爱吃辣

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

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

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

打赏作者

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

抵扣说明:

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

余额充值