1、数据传指令
(1)通用数据传送指令
MOV 传送指令
PUSH 进栈指令
POP 出栈指令
XCHG 交换指令
(2)累加器专用传送指令
IN 输入指令
OUT 输出指令
XLAT 换码指令
(3)有效地址送寄存器指令
LEA 有效地址送寄存器指令 LEA r16,mem
LDS 指针送寄存器和DS指令 LDS r16,mem
LES 指针送寄存器和ES指令 LES r16,mem
(4)标志寄存器传送指令
LAHF 标志送AH指令
SAHF AH送标志寄存器指令
PUSHF 标志进栈指令
POPF 标志出栈指令
2、算术指令
(1)加法指令
ADD 加法指令
ADC 带进位加法指令
INC 加1指令
(2)减法指令
SUB 减法指令
SBB 带借位减法指令
DEC 减1指令
NEG 求补指令
CMP 比较指令
(3)乘法指令
MUL 无符号数乘法指令
IMUL 带符号数乘法指令
(4)除法指令和转换指令
DIV 无符号数除法指令
IDIV 带符号数除法指令
CBW 字节转换为字指令
CWD 字转换为双字指令
3、逻辑指令
(1)逻辑运算指令
AND 逻辑与指令
OR 逻辑或指令
NOT 逻辑非指令
XOR 异或指令
TEST 测试指令 TEST reg,imm/reg/mem或TEST mem,imm/reg
(2)移位指令
SHL 逻辑左移指令 用来乘2
SAL 算术左移指令 用来乘2
SHR 逻辑右移指令 用来除以2
SAR 算术右移指令 用来除以2
ROL 循环左移指令
ROR 循环右移指令
RCL 带进位循环左移
RCR 带进位循环右移
4、串处理指令
(1)与REP相配合工作的MOVS,STOS和LODS指令
REP 重复串操作直到(CX)=0为止
MOVS 串传送指令
CLD 指令使DF=0,在执行串操作指令时可使地址自动增量
STD 指令使DF=1,在执行串操作指令时可使地址自动减量
STOS 存入串指令
LODS 从串取指令
(2)与REPE/PEPZ和REPNZ/REPNE联合工作的CMPS和SCAS指令
REPE/REPZ 当相等/为零时重复串操作
REPNE/REPNZ 当不相等/不为零时重复串操作
CMPS 串比较指令
SCAS 串扫描指令
5、控制转移指令
(1)无条件转移指令
JMP SHORT OPR 段内直接短转移指令
JMP NEAR PTR OPR段内直接近转移指令
JMP WORD PTR OPR段内间接转移指令
JMP FAR PTR OPR 段间直接(远)转移指令
JMP DWORD PTR OPR段间间接转移指令
(2)条件转移指令
1)、根据单个条件标志的设置情况转移
JZ/JE 结果为零/相等则是转移指令
JNZ/JNE 结果不为零/或不相等则转移指令
JS 结果为负则转移指令
JNS 结果为正则转移指令
JO 溢出则转移指令
JNO 不溢出则转移指令
JP/JPE 奇偶位为1则转移指令
JNP/JPO 奇偶位为0则转移指令
JB/JNAE/JC 低于或者不高于或等于或进位位为1则转移
JNB/JAE/JNC 不低于或者高于或者等于或进位位为0则转移指令
2)、比较两个无符号数,并根据比较的结果转移
JB/JNAE/JC 低于或者不高于或等于或进位位为1则转移
JNB/JAE/JNC 不低于或者高于或者等于或进位位为0则转移指令
JBE/JNA 低于或等于或不高于则转移指令
JNBE/JA 不低于或等于或者高于则转移指令
3)、比较两个带符号数,并根据比较的结果转移
JL/JNGE 小于或者不大于或者等于则转移指令
JNL/JGE 不小于或者大于或者等于则转移指令
JLE/JNG 小于或等于或者不大于则转移指令
JNLE/JG 不小于或等于或者大于则转移指令
JCXZ CX 测试CX的值为0则转移指令
6、循环指令
(1)LOOP循环指令
(2)LOOPZ/LOOPE 当为零或相等时循环指令
(3)LOOPNZ/LOOPNE当不为零或不相等时循环指令
7、子程序指令
CALL 子程序调用指令
RET 子程序返回指令
8、中断指令
INT TYPE/INT 中断指令
INTO 若溢出,则中断指令
IRET 从中断返回指令
9、处理机控制指令
(1)、标志处理指令
CLC 进位位置0指令 CF←0
CMC 进位位求反指令 CF←CF取反
STC 进位位置1指令 CF←1
CLD 方向标志置0指令DF←0
STD 方向标志置1指令DF←1
CLI 中断标志置0指令IF←0
STI 中断标志置1指令IF←1
(2)、其它处理机控制指令
NOP 无操作
HLT 停机
WAIT 等待
ESC 换码
LOCK 封锁