当前位置:文档之家› 微机原理8086指令系统表

微机原理8086指令系统表

INC
INC Dest
(Dest) ← (Dest) +1
ODITSZAPC= x---xxxx-


SUB
SUB EST,Src
(Dest)←(Dest)- (Src)
ODITSZAPC= x---xxxxx
SBB
SBB EST,Src
(Dest)←(Dest)- (Src)-CF
ODITSZAPC= x---xxxxx
(IP)←过程的偏移地址
(CS)←过程的段地址
段间直接调用
CALL DWORD PTR Opr
SP←(SP)-2
SS:[SP]←CS
SP←(SP)-2
SS:[SP] ←IP
IP)←(EA)
(CS)←(EA+2)
段间间接调用
RET
RET
IP←SS:[SP]
SP←(SP)+2
无参数段内返回
RET n
IP←SS:[SP]
只要CX=0或ZF=0,则重复执行结束。
REPNE
/REPNZ
REPNE MPS/ SCAS
REPNZ CMPS/ SCAS
每执行一次,CX←(CX)-1,并判断ZF标志位是否为1;
只要CX=0或ZF=1,则重复执行结束。






JMP
JMP SHORT Opr
IP←(IP)+8位偏移
段内直接短转移
STOS Dest
STOSB
STOSW
ES:(DI)←(Ac)
(DI)←(DI)±1或2
CMPS
CMPS Dest,Src
CMPSB
CMPSW
DS:(SI) - ES:(DI)
(SI) ←(SI)±1或2
(DI) ←(DI)±1或2
SCAS
SCAS Dest
SCASB
SCASW
Ac - ES:(DI)
LES
LES DES,Src
(Dest) ←EA (Src)
(ES) ← EA(Src+2)




LAHF
LAHF
(AH) ←(FLAGSL)
相反操作
一般配对使用
SAHF标志位=-----rrrrr
SAHF
SAHF
(FLAGSL)← (AH)
PUSHF
PUSHF
(SP)← (SP)-2
((SP) +1,(SP)) ← (PSW)
OUT
OUT Port,Ac
OUT DX,Ac
(Port) ←Ac
((DX))←Ac






ADD
ADD EST,Src
(Dest)←(Src)+(Dest)
ODITSZAPC=x---xxxxx
ADC
ADC EST,Src
(Dest)←(Src)+ Dest)+CF
ODITSZAPC= x---xxxxx
SP←(SP)+2
SP←(SP)+n
有参数段内返回
RET
IP←SS:[SP]
SP←(SP)+2
CS←SS:[SP]
SP←(SP)+2
无参数段间返回
RET n
IP←SS:[SP]
SP←(SP)+2
CS←SS:[SP]
SP←(SP)+2
SP←(SP)+n
有参数段间返回
JXX
JC Dest
CF=1则转移
有进位/借位
西安邮电大学8086指令系统表
指令
助记符
格式
功能
备注










MOV
MOV Dest,Src
(Dest)← (Src)
Imm、CS、IP不能为Dest
Opr位数必须一致
Opr不能同为Mem
Opr不能同为Sreg
XCHG
XCHG Dest,Src
(Src) ←→ (Dest)
Opr不能为Imm,Sreg
Cnt是移位数
Cnt>1,其值要先送到CL
ODITSZAPC= x---xxuxx
SAR
SAR Dest,Cnt
SHL
SHL Dest,Cnt
SHR
SHR Dest,Cnt
ROL
ROL Dest,Cnt
将Dest从一端移出的位返回到另一端形成循环
Dest不能为Imm
Cnt是移位数
Cnt>1,其值要先送到CL
JMP NEAR PTR Opr
IP←(IP)+16位偏移量
段内直接近转移
JMP WORD PTR Opr
IP←(EA)
段内间接转移
JMP FAR PTR Opr
(IP)←Opr指定的偏移地址
(CS)←Opr指定的段地址
段间直接(远)转移
JMP DWORD PTR Opr
IP)←(EA)
(CS)←(EA+2)
段间间接转
CALL
CALL过程名
SP←(SP)-2
SS:[SP] ←IP
IP←(IP)+16位偏移量
段内直接调用
CALL Opr
SP←(SP)-2
SS:[SP] ←IP
IP←(EA)
段内间接调用
CALL FAR PTR过程名
SP←(SP)-2
SS:[SP]←CS
SP←(SP)-2
SS:[SP] ←IP
PF=1则转移
有偶数个“1”
JNP/JPO Dest
PF=0则转移
有奇数个“1”
JA/JNBE Dest
CF=0 AND Z F=0则转移
无符号数A>B
JAE/JNB Dest
CF=0 OR ZF=1则转移
无符号数A≥B
JB/JNAE Dest
CF=1 AND ZF=0则转移
无符号数A<B
JBE/JNA Dest
紧接在MUL后
ODITSZAPC= u---uuxux
AAD
AAD
(AL)(AL)非组合BCD
DIV指令之前用AAD
DIV之后用AAM
ODITSZAPC= u---xxuxu




AND
AND Dest,Src
(Dest)←(Dest)∧(Src)
使Dest的某些位强迫清0
ODITSZAPC= 0---xxux0
SI=DS中源串首地址
DI=ES中目的串首地址
CX=数据串的长度
CLD/TD建立方向标志
DF=0,地址增量
DF=1,地址减量
CMPS标志位= x---xxxxx
SCAS标志位= x---xxxxx
LODS
LODS Src
LODSB
LODSW
(Ac)←DS:(SI)
(SI) ←(SI)±1或2
STOS
CF=1 OR ZF=1则转移
无符号数A≤B
JG/JNLE Dest
SF=OF AND ZF=0则转移
有符号数A>B
JGE/JNL Dest
SF=OF OR ZF=1则转移
有符号数A≥B
JL/JNGE Dest
SF≠OF AND ZF=0则转移
有符号数A<B
JLE/JNG Dest
SF≠OF OR ZF=1则转移
XLAT
XLAT
(AL) ← ((BX) + (AL))
BX=首地址
AL=偏移量




LEA
LEA DES,Src
(Dest) ← EA(Src)
Dest为16位Reg
Dest不能为Sreg
Src为32位Mem
LDS
LDS DES,Src
(Dest) ←EA (Src)
(DS) ← EA(Src+2)
TEST
TEST Dest,Src
(Dest)∧(Src)
测试某位是否为0
ODITSZAPC= 0---xxux0




SAL
SAL Dest,Cnt
空出位补0,移出位进CF
SAR时空出位不变
SAL,SAR用于有符号数
SHL,SHR用于无符号数
左移乘以2的Cnt次方
右移除以2的Cnt次方
Dest不能为Imm
JNC Dest
CF=0则转移
无进位/借位
JE/JZ Dest
ZF=1则转移
相等/等于零
JNE/JNZ Dest
ZF=0则转移
不相等/不等于零
JS Dest
SF=1则转移
是负数
JNS Dest
SF=0则转移
是正数
JO Dest
OF=1则转移
有溢出
JNO Dest
OF=0则转移
无溢出
JP/JPE Dest
IDIV
IDIV Src
(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX,AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数
CBW
CBW
ALAX
正数前补0
负数前补1
无符号数不能扩展
CWD
CWD
AX(DX,AX)
B
C
相关主题