8086微机运算指令

本文主要介绍8086微机中基本的运算指令

一、加法指令

加法指令有三种,分别是普通加法、带进位加法、自增。

1.普通加法ADD

格式:ADD OPRD1, OPRD2
操作: OPRD1 + OPRD2 ——>OPRD1
ADD指令会影响6个状态标志位。

2.带进位加法ADC

格式:ADC OPRD1, OPRD2
操作: OPRD1 + OPRD2 + CF ——>OPRD1
ADD指令会影响6个状态标志位。

3.自增加法INC

格式:INC OPRD
操作:OPRD + 1 ——> OPRD

二、减法指令

减法指令共有5种,除去与加法相对应的三种外,还有比较指令与求补指令。

1.普通减法SUB

格式:SUB OPRD1, OPRD2
操作: OPRD1 - OPRD2 ——>OPRD1
ADD指令会影响6个状态标志位。

2.带进位减法SBB

格式:SBB OPRD1, OPRD2
操作: OPRD1 - OPRD2 ——>OPRD1
ADD指令会影响6个状态标志位。

3.自减减法DEC

格式:DEC OPRD
操作:OPRD - 1 ——> OPRD

4.求补指令NEG

格式:NEG OPRD
操作:0 - OPRD ——>OPRD

5.比较指令CMP

格式:CMP OPRD1, OPRD2
操作: OPRD1 - OPRD2
此操作不影响目标操作数,但会改变标志寄存器。

CMP AX, BX
无符号数比较:

情况标志位
AX大于等于BXCF = 0
AX < BXCF = 1
AX = BXCF = 0, ZF = 1

有符号数比较:

情况标志位
AX大于等于BXOF, SF状态相同
AX < BXOF, SF状态不同

三、乘法指令

乘法指令分为无符号乘法与有符号乘法。乘法指令采用隐含寻址,隐含了存放被乘数的累加器AL或AX,以及存放结果的AX或AX, DX;

无符号乘法MUL

格式:MUL OPRD
操作:

情况执行结果
OPRD为字节数AL X OPRDAX
OPRD为16位数AX X OPRDDXAX

有符号数乘法IMUL

格式:IMUL OPRD
操作:将两个数取补码,进行无符号数乘法,将结果取补码。具体相乘细节与无符号乘法相同。

四、除法指令

与乘法相同,除法指令也分为有符号和无符号两种。

无符号除法DIV

格式:DIV OPRD
单字节:
执行:AX/OPRD
结果:AL = 商;AH = 余数
双字节:
执行:DXAX/OPRD
结果:AX = 商;DX = 余数

有符号除法IDIV

格式:IDIV OPRD
操作方式与无符号数相同
需特别注意的是,被除数的字长必须为除数的二倍。

©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页