一、数据传送类指令
数据传送类指令又分为:
1、通用数据传送指令三条
传送指令:MOV dest,src ;dest←src
交换指令:XCHG reg,reg/mem ;reg←reg/mem,也可表达为:XCHG reg/mem.reg
换码指令:XLAT label 或 XLAT ;al←ds:[bx+al]
2、堆栈操作指令
进栈指令:PUSH reg/mem/seg ;SP←sp-2,SS:[Sp]←reg/mem/seg
出栈指令:POP reg/mem/seg ;reg/seg/mem←SS:[SP],Sp←SP+2
3、标志寄存器传送指令
标志送AH指令:LAHF ;AH←FLAGS的低字节
AH送标志指令:SAHF ;FLAGS的低字节←AH
标志进栈指令:PUSHF ;SP←SP-2,SS:[SP]←FLAGS
标志出栈指令:POPF ;FLAGS←SS:[SP],SP←SP+2
4、地址传送指令
有效地址传送指令:LEA r16,mem ;r16←mem的有效地址EA
指针传送指令 :LDS r16,mem ;r16←mem,DS←mem+2
指针传送指令 :LES r16,mem ;r16←mem,ES←mem+2
5、输入输出指令
输入指令:IN
输出指令:OUT
二、算术运算类指令
1、加法指令
加法指令:ADD
带进位加法指令:ADC
增量指令:INC
2、减法指令
减法指令:SUB
带借位减法指令:SBB
减量指令:DEC
求补指令:NEG
比较指令:CMP
3、乘法指令
无符号数乘法指令:MUL
有符号数乘法指令:IMUL
4、除法指令
无符号数除法指令:DIV
有符号数除法指令:IDIV
5、符号扩展指令
字节转换为字指令:CBW
字转换为双字指令:CWD
6、十进制调整指令
(1)压缩BCD码调整指令
加法的十进制数调整指令:DAA
减法的十进制数调整指令:DAS
(2)非压缩BCD码调整指令
加法的非压缩BCD码调整指令:AAA
减法的非压缩BCD码调整指令:AAS
乘法的非压缩BCD码调整指令:AAM
除法的非压缩BCD码调整指令:AAD
三、位操作类指令
1、逻辑运算指令
逻辑与指令:AND
逻辑或指令:OR
逻辑异或指令:XOR
逻辑非指令:NOT
测试指令:TEST
2、移位指令
(1)逻辑移位指令
逻辑左移:SHL
逻辑右移:SHR
(2)算术移位指令
算术左移:SAL
算术右依:SAR
3、循环移位指令
(1)不带进位循环移位指令
不带进位循环左移:ROL
不带进位循环右移:ROR
(2)带进位循环移位指令
带进位循环左移:RCL
带进位循环右移:RCR
四、串操作指令
1、串传送指令
字节串传送指令:MOVSB
字串传送指令 :MOVSW
2、串存储指令
字节串存储指令:STOSB
字串存储指令 :STOSW
3、串读取指令
字节串读取指令:LODSB
字串读取指令 :LODSW
4、串比较指令
字节串比较指令:CMPSB
字串比较指令 :CMPSW
5、串扫描指令
字节串扫描指令:SCASB
字串扫描指令 :SCASW
6、重复前缀指令
REP
REPZ
REPNZ
五、控制转移类指令
1、无条件转移指令
JMP
2、条件转移指令
JZ/JE、JNZ/JNE、JS、JNS、JP/JPE、JNP/JPO、JO、JNO、JC/JB/JNAE、JNC/JNB/JAE、JBE/JNA、
JNBE/JA、JL/JNGE、JNL/JGE、JLE/JNG、JNLE/JG
3、循环指令
LOOP
LOOPZ/LOOPE
LOOPNZ/LOOPNE
4、子程序指令
子程序调用指令 CALL
子程序返回指令 RET
5、中断指令
INT i8
IRET
INTO
6、系统功能调用
六、处理机控制类指令
1、标志位操作指令
(1)进位标志操作指令
CLC
STC
CMC
(2)方向标志操作指令
CLD
STD
(3)中断标志操作指令
CLI
STI
2、CPU状态控制指令
控操作指令:NOP
段超越前缀指令:SEG:
封锁前缀指令:LOCK
暂停指令:HLT
交权指令:ESC
等待指令:WAIT