算术运算指令

算术运算指令只能处理4种类型的数据:

  1. 无符号十进制数
  2. 带符号二进制数
  3. 无符号压缩十进制整数
  4. 无符号非压缩十进制整数

压缩十进制数:一个字节中存放两个BCD码十进制数

非压缩十进制数:一个字节的低半字节存放十进制数,高半字节全为零。


1. 加法指令

① ADD 加法指令 (Addition)

ADD 目的, 源

(1)功能:目的 ← 目的 + 源

(2)工作特点

  • 影响CF、OF、PF、SF、ZF、AF标志位。

(3)要求

  • 目的操作数只能用寄存器或存储单元
  • 源和目的操作数不能同时为存储器
  • 源和目的操作数的长度相同

② ADC 带进位的加法指令 (Addition with Carry)

ADC 目的, 源

(1)功能:源 ← 目的 + 源 + CF的当前值

CF:进位标志

(2)工作特点:

  • 影响CF、OF、PF、SF、ZF、AF标志位。

(3)要求:

  • 源和目的操作数不能同时为存储器
  • 源和目的操作数长度必须相同

③ INC 增量指令 (Increment)

INC 目的

(1)功能:目的 ← 目的 + 1

(2)工作特点

  • 执行后影响AF、OF、PF、SF、
  • 主要用于循环程序

(3)要求

  • 利用PTR操作符说明存储单元是字或是字节。

④ AAA 加法的ASCII调整指令 (ASCII Adjust for Addition)

AAA

(1)功能

⑤ DAA 加法的十进制调整指令 (Decimal Adjust for Addition)

DAA

(1)功能:将两个压缩BCD数相加后的结果调整为正确的压缩BCD数。

  • 当AL中 低半字节>9 或 AF = 1,则AL ← AL + 6
  • 当AL中 高半字节>9 或 CF = 1,则AL ← AL + 60H,且CF置1。

(3)要求

  • 相加后的结果必须在AL中,才能用此条指令。

2. 减法指令

① SUB 减法指令 (Subtraction)

SUB 目的,源

(1)功能:目的 ← (目的 - 源)

(2)工作特点:

(3)对标志位的影响

② SBB 带借位的减法指令 (Subtract with Borrow)

SBB 目的 源

(1)功能:目的 ← (目的 - 源 - CF)

(2)工作特点

  • 主要用于多字节减法。

(3)要求

③ DEC 减量指令 (Decrement)

DEC 目的

(1)功能:目的 ← (目的 - 1)

④ NEG 取负指令 (Negate)

NEG 目的

(1)功能:对目的操作数取负,结果送回目的操作数。

(2)工作特点

(3)要求

⑤ CMP 比较指令 (Compare)

CMP 目的 源

(1)功能:目的 - 源

(2)对标志位的影响

  • 如果 源 > 目的,则CF置1
  • 如果 源 = 目的,则ZF置1

(3)要求

  • 目的操作数不能为立即数
  • 源操作数可以是立即数,寄存器,存储器

⑥ AAS 减法的ASCII调整指令 (ASCII Adjust for Subtraction)

AAS

(1)功能

(2)工作特点

(3)要求

⑦ DAS 剑法的十进制调整指令 (Decimal Adjust for Subtraction)

DAS

(1)功能

(2)工作特点

(3)要求

3. 乘法指令

① MUL 无符号数乘法指令 (Multiply)

MUL 源

(1)功能:把源操作数和累加器中的数都当成无符号数,然后将两数相乘。

(2)工作特点

  • 源操作数可以是字或字节。
  • 若源操作数是一个字节,则它与累加器AL相乘,乘积为16位数,高8位送到AH,低8位送到AL。
  • 若源操作数是一个字,则它与累加器AX相乘,乘积为32位数,高位字送到DX,低位字送到AX。

(3)要求

  • 源操作数不能是立即数。
  • 源操作数是存储单元时,必须在前加BYTE或WORD说明是字或字节。

② IMUL 整数乘法指令 (Integer Multiply)

IMUL

(1)功能

(2)工作特点

(3)要求

③ AAM 乘法的ASCII调整指令 (ASCII Adjust for Multiply)

AAM

(1)功能

(2)工作特点

(3)要求

4. 除法指令

① DIV 无符号数除法指令 (Division,unsigned)

DIV 源

(1)功能:对无符号二进制数进行除法操作。

(2)工作特点

  • 源操作数作为除数。
  • 源操作数可以是寄存器或存储单元。
  • 都为无符号数。

(3)要求

  • 若源操作数为字节,16位被除数在AX中;相除之后,8位商在AL中,余数在AH中。
  • 若源操作数为字,32位被除数在DX,AX中,DX为高为字;相除之后,AX存16位商,DX存16位余数。
  • 若被除数只有8位,则必须放在AL中,AH清零。
  • 若被除数只有16位,除数也是16位,则被除数必须放在AX中,DX清零。

② IDIV 整数除法指令 (Integer Division)

IDIV

(1)功能

(2)工作特点

(3)要求

③ CBW 把字节转换成字指令(Convert Byte to Word)

CBW

(1)功能

(2)工作特点

(3)要求

④ CWD 把字转换成双字指令 (Convert Word to Double Word)

CWD

(1)功能

(2)工作特点

(3)要求

⑤ AAD 除法的ASCII调整指令 (ASCII Adjust for Division)

AAD

(1)功能

(2)工作特点

(3)要求

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值