本篇介绍8086的指令系统,包括常用指令及寻址方式。
CPU的全部指令集称为指令系统,8086指令系统有如下特性:
采用可变长指令,指令格式比较复杂
寻址方式多样灵活,处理数据能力较强,可处理字节、字、符号等
有重复指令和乘、除运算指令。扩充了条件转移、移位/循环指令
增加了软件中断和支持多处理器有关指令
学习指令的几个要点:指令的功能、支持的寻址方式、对标志位的影响等。
一、数据传送指令
1、通用数据传送指令(不影响标志位)
MOV 传送
PUSH 进栈
POP 出栈
XCHG 交换
2、累加器专用传送指令
IN 输入
OUT 输出
XLAT 换码
3、有效地址送寄存器指令
LEA 有效地址送寄存器
LDS 指针送寄存器和DS
LES 指针送寄存器和ES
4、标志送寄存器传送指令
LAHF 标志送AH
SAHF AH送标志寄存器(低字节)
PUSHF 标志进栈
POPF 标志出栈
二、算术指令
1、加法指令
ADD 加法 SRC+DIST->DIST
ADC 带进位加法
INC 加1
2、减法指令
SUB 减法
SBB 带借位减法
DEC 减1
CMP 比较 只设置符号位,不保存结果
NEG 求补 按位求反后+1
3、乘法指令
MUL (AX)<-(AL)*(SRC) (DX,AX)<-(AX)*(SRC) 若乘积的高一半为0,则OF=CF=0
IMUL 带符号乘法 若乘积高一半是低一半的符号扩展 则OF=CF=0
4、除法指令
DIV 除法
IDIV 带符号除法
字节操作:(AL)<-(AX)/(SRC)的商
(AH)<-(AX)/(SRC)的余数
字操作: (AX)<-(DX,AX)/(SRC)的商
(DX)<-(DX,AX)/(SRC)的余数
除法错中断:当被除数远大于除数,商溢出 产生除法错中断
5、类型转化指令
CBW BYTE->WORD
CWD WORD->DOUBLE
三、逻辑指令
1、逻辑运算指令
AND OR NOT XOR TEST
2、移位指令
SHL SHR SAL SAR ROL ROR RCL RCR
四、串处理指令
五、控制转移指令
1、无条件转移
JMP
2、条件转移
JZ(JE) ZF=1转移
JNZ(JNE) ZF=0转移
JS SF=1转移
JNS SF=0转移
JO OF=1转移
JNO OF=0转移
JP PF=1转移
JNP PF=0转移
JB(JAE,JC) CF=1转移
JNB(JNAE,JNC) CF=0转移
3、循环指令
LOOP OPR CF<>1 LOOP
LOOPZ/LOOPE OPR CF<>1 ZF=1 LOOP
LOOPNZ/LOOPNE OPR CF<>1 ZF==0 LOOP
汇编(二)8086指令系统
最新推荐文章于 2022-06-26 10:57:49 发布