附录_8086指令系统表
- 格式:doc
- 大小:165.50 KB
- 文档页数:7
空出位补0,移出位进CF
SAR时空出位不变
SAL,SAR用于有符号数
SHL,SHR用于无符号数
左移乘以2的Cnt次方
右移除以2的Cnt次方
Dest不能为Imm
Cnt是移位数
Cnt>1,其值要先送到CL
ODITSZAPC= x---xxuxx
SAR
SARDest,Cnt
SHL
SHL Dest,Cnt
JNCDest
CF=0则转移
无进位/借位
JE/JZDest
ZF=1则转移
ቤተ መጻሕፍቲ ባይዱ相等/等于零
JNE/JNZDest
ZF=0则转移
不相等/不等于零
JSDest
SF=1则转移
是负数
JNSDest
SF=0则转移
是正数
JODest
OF=1则转移
有溢出
JNODest
OF=0则转移
无溢出
JP/JPEDest
PF=1则转移
段间直接(远)转移
JMP DWORD PTROpr
IP)←(EA)
(CS)←(EA+2)
段间间接转
CALL
CALL过程名
SP←(SP)-2
SS:[SP] ←IP
IP←(IP)+16位偏移量
段内直接调用
RET
RET
IP←SS:[SP]
SP←(SP)+2
无参数段内返回
JXX
JCDest
CF=1则转移
有进位/借位
CLI
CLI
IF←0
ODITSZAPC=--0------
STI
STI
IF←1
ODITSZAPC=--1------
HLT
HLT
暂停
CPU最大模式时,用于处理主机和协处理器及多处理器之间的同步关系。
NOP
NOP
空操作
注:1)影响标志位的指令已作特殊说明,没作特殊说明的均不影响标志位。
2)附录中各缩写或符号含义如下
无符号数A≤B
JG/JNLEDest
SF=OF AND ZF=0则转移
有符号数A>B
JGE/JNLDest
SF=OF OR ZF=1则转移
有符号数A≥B
JL/JNGEDest
SF≠OF AND ZF=0则转移
有符号数A<B
JLE/JNGDest
SF≠OF OR ZF=1则转移
有符号数A≤B
LOOP
LOOPDest
ODITSZAPC= u---uuuuu
IDIV
IDIVSrc
(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX,AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数
CBW
CBW
ALAX
正数前补0
负数前补1
无符号数不能扩展
CWD
CX-1≠0,则循环
段内直接短转移
处
理
器
控
制
指
令
CLC
CLC
CF←0
ODITSZAPC=--------0
STC
STC
CF←1
ODITSZAPC=--------1
CMC
CMC
CF=
ODITSZAPC=--------x
CLD
CLD
DF←0
ODITSZAPC=-0-------
STD
STD
DF←1
ODITSZAPC=-0-------
有偶数个“1”
JNP/JPODest
PF=0则转移
有奇数个“1”
JA/JNBEDest
CF=0 AND Z F=0则转移
无符号数A>B
JAE/JNBDest
CF=0 OR ZF=1则转移
无符号数A≥B
JB/JNAEDest
CF=1 AND ZF=0则转移
无符号数A<B
JBE/JNADest
CF=1 OR ZF=1则转移
附录8086指令系统表
指令
助记符
格式
功能
备注
数
据
传
送
通
用
数
据
传
送
MOV
MOVDest,Src
(Dest)← (Src)
Imm、CS、IP不能为Dest
Opr位数必须一致
Opr不能同为Mem
Opr不能同为Sreg
XCHG
XCHGDest,Src
(Src) ←→ (Dest)
Opr不能为Imm,Sreg
(DX,AX)← (AX) *(Src)
除
法
DIV
DIVSrc
(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX,AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数
单操作数指令
Src为除数
Src不能为Imm
AX(DX,AX)为隐含的被除数
ODITSZAPC= x---xxxxx
DEC
DECDest
(Dest) ← (Dest) -1
ODITSZAPC= x---xxxx-
NEG
NEG Dest
(Dest) ←0 - (Dest)
求相反数
ODITSZAPC= x---xxxxx
CMP
CMP DES,Src
(Dest)-(Src)
结果不回送
Opr位数必须一致
Opr不能同为Mem
Opr不能为CS(或IP)
PUSH
PUSHSrc
(SP)← (SP)-2
((SP) +1,(SP)) ← (Src)
Opr只能16位
Opr不能为Imm、CS
PUSH CS合法
一般配对使用
POP
POPDest
(Dest)←((SP) +1,(SP))
(SP) ← (SP) +2
缩写
含义
缩写
含义
缩写
含义
Dest
目的操作数
Ac
AL或AX
x
根据结果设置标志位
Src
源操作数
Mem
存储器
-
不影响标志位
Opr
操作数
Imm
立即数
u
对标志位无定义
Reg
寄存器
Port
端口地址
r
恢复原先标志位的值
Sreg
段寄存器
EA
有效地址
Cnt
移位数
CWD
AX(DX,AX)
逻
辑
运
算
AND
ANDDest,Src
(Dest)←(Dest)∧(Src)
使Dest的某些位强迫清0
ODITSZAPC= 0---xxux0
OR
ORDest,Src
(Dest)←(Dest)∨(Src)
使Dest的某些位强迫置1
ODITSZAPC= 0---xxux0
NOT
NOTDest
RCR
RCRDest,Cnt
控
制
转
移
指
令
JMP
JMP SHORTOpr
IP←(IP)+8位偏移
段内直接短转移
JMP NEAR PTROpr
IP←(IP)+16位偏移量
段内直接近转移
JMP WORD PTROpr
IP←(EA)
段内间接转移
JMP FAR PTROpr
(IP)←Opr指定的偏移地址
(CS)←Opr指定的段地址
后边一般跟JXX
ODITSZAPC= x---xxxxx
乘
法
MUL
MULSrc
(AX) ← (AL) *(Src)
(DX,AX)← (AX) *(Src)
单操作数指令
Src为乘数
Opr不能为Imm
Ac为隐含的被乘数
ODITSZAPC= x---uuuux
IMUL
IMULSrc
(AX) ← (AL) *(Src)
SHR
SHRDest,Cnt
ROL
ROL Dest,Cnt
将Dest从一端移出的位返回到另一端形成循环
Dest不能为Imm
Cnt是移位数
Cnt>1,其值要先送到CL
ODITSZAPC= x-------x
ROR
RORDest,Cnt
RCL
RCLDest,Cnt
将Dest从一端移出的位,连同CF一起循环移位
ODITSZAPC= x---xxxxx
INC
INCDest
(Dest) ← (Dest) +1
ODITSZAPC= x---xxxx-
减
法
SUB
SUB EST,Src
(Dest)←(Dest)- (Src)
ODITSZAPC= x---xxxxx
SBB
SBB EST,Src
(Dest)←(Dest)- (Src)-CF
地
址
传
送
LEA
LEA DES,Src
(Dest) ← EA(Src)
Dest为16位Reg
Dest不能为Sreg
Src为32位Mem
算
术
运
算
加
法
ADD
ADD EST,Src
(Dest)←(Src)+(Dest)
ODITSZAPC=x---xxxxx