汇编语言指令集
1.算术运算符
ADC:带进位加法
ADD:二进制数加法
DEC:减一
DIV:无符号数除法
IDIV:带符号数(整数)除法
IMUL:带符号数(整数)乘法
INC:加一
MUL:无符号书乘法
NEG:求补
SBB:带借位减法
SUB:二进制减法
XADD:交换并相加
2.ASCII-BCD转换
AAA:加后ASCII调整
AAD:除前ASCII调整
AAM:乘后ASCII调整
AAC:减后ASCII调整
DAA:加后十进制调整
DAS:减后十进制调整
3.移位
RCL:带进位循环左移
RCR:带进位循环右移
ROL:循环左移
ROR:循环右移
SAL:算术左移
SAR:算术右移
SHL:逻辑左移
SHR:逻辑右移
SHLD:双精度左移
SHRD:双精度右移
4.比较
BSF/BSR:位扫描
BT/BTC/BR/BB:位测试
CMP:比较
CMPSN:串比较
CMPXCHG:比较交换
CMPXCHG8B:比较并换?lt;br>TEST:测试位
5.数据传送
LDS:装如数据段寄存器
LEA:装入有效地址
LES:装入附加段寄存器
LODS:从串取
LSS:装入堆栈段寄存器
MOV:传送数据
MOVS:串传送
MOVSX:带符号扩展传送
MOVZX:带零扩展传送
STOS:存入串
XCHG:交换
XLAT:换码
6.标志操作
CLC:清除位标志
CLD:清除方向标志
CLI:清除中断标志
CMC:进位标志求反
LAHF:标志送AH
POPF:标志出栈
PUSHF:标志进栈
SAHF:AH送标志寄存器
STC:进位标志置1
CTD:方向标志置1
STI:中断标志置1
7.输入/输出
IN:输入字节或字
INSN:串输入
OUT:输出字节或字
OUTSN:穿输出
8.逻辑操作
AND:逻辑与
NOT:逻辑非
OR:逻辑或
XOR:异或
9.循环
LOOP:循环直到完成
LOOPE:相等时循环
LOOPZ:为零是循环
LOOPNE:不相等时循环
LOOPPNZ:不为零是循环
LOOPPNEW:不相等时循环
LOOPNZW:不为零时循环
10.处理器控制
HLT:进入暂停状态
LOCK:封锁总线
NOP:无操作
WAIT:置处理器于等待状态
11.堆栈操作
ENTER:建立堆栈帧
LEAVE:结束堆栈帧
POP:字出栈
POPF:标志出栈
POPA:所有通用寄存器出栈
PUSH:字进栈
PUSHA:所有通用积存器进栈
PUSHF:标志进栈
12.串操作
CMPS:串比较
LODS:从串取
MOVS:串传送
REP:串重复
REPE:相等时重复
REPZ:为零时重复
REPNE:不相等时重复
REPNZ:不为零时重复
SCAS:串扫描
STDS:存入串
13.转移(条件)
INT溢出中断
JA:高于则转移
JAE:高于或等于则转移
JB:低于则转移
JBE:低于或等于则转移
JC:进位为1则转移
JCXZ:CX为零则转移
JE:相等则转移
JG:大于则转移
JGE:大于或等于则转移
JL:小于则转移
JLE:小于或等于
JNC:进位为零则转移
JNE:不相等则转移
JNG:不大于则转移
JNGE:不大于或等于则转移
JNL:不小于则转移
JNLE:不小于或等于则转移
JNA:不高于则转移
JNB:不低于则转移
JNBE:不低于或等于则转移
JNAE:不高于或等于则转移
JN不溢出则转移
JNP:奇偶位为0则转移
JNZ:结果不为零则转移
JNS:结果为正则转移
J若溢出则转移
JP:奇偶位为1则转移
JPE:奇偶性为偶则转移
JP奇偶性为奇则转移
JS:结果为负则转移
JZ:结果为零则转移
14.转移(无条件)
CALL:调用过程
INT:中断
IRET:中断返回
JMP:无条件转移
RET:返回
RETN/RETF:近返回/远返回
15.类型转换
CBW:字节转换为字
CDQ:双字转换为四字
CWD:字转换为双字
CWDE:字转换为扩展的双字
1.算术运算符
ADC:带进位加法
ADD:二进制数加法
DEC:减一
DIV:无符号数除法
IDIV:带符号数(整数)除法
IMUL:带符号数(整数)乘法
INC:加一
MUL:无符号书乘法
NEG:求补
SBB:带借位减法
SUB:二进制减法
XADD:交换并相加
2.ASCII-BCD转换
AAA:加后ASCII调整
AAD:除前ASCII调整
AAM:乘后ASCII调整
AAC:减后ASCII调整
DAA:加后十进制调整
DAS:减后十进制调整
3.移位
RCL:带进位循环左移
RCR:带进位循环右移
ROL:循环左移
ROR:循环右移
SAL:算术左移
SAR:算术右移
SHL:逻辑左移
SHR:逻辑右移
SHLD:双精度左移
SHRD:双精度右移
4.比较
BSF/BSR:位扫描
BT/BTC/BR/BB:位测试
CMP:比较
CMPSN:串比较
CMPXCHG:比较交换
CMPXCHG8B:比较并换?lt;br>TEST:测试位
5.数据传送
LDS:装如数据段寄存器
LEA:装入有效地址
LES:装入附加段寄存器
LODS:从串取
LSS:装入堆栈段寄存器
MOV:传送数据
MOVS:串传送
MOVSX:带符号扩展传送
MOVZX:带零扩展传送
STOS:存入串
XCHG:交换
XLAT:换码
6.标志操作
CLC:清除位标志
CLD:清除方向标志
CLI:清除中断标志
CMC:进位标志求反
LAHF:标志送AH
POPF:标志出栈
PUSHF:标志进栈
SAHF:AH送标志寄存器
STC:进位标志置1
CTD:方向标志置1
STI:中断标志置1
7.输入/输出
IN:输入字节或字
INSN:串输入
OUT:输出字节或字
OUTSN:穿输出
8.逻辑操作
AND:逻辑与
NOT:逻辑非
OR:逻辑或
XOR:异或
9.循环
LOOP:循环直到完成
LOOPE:相等时循环
LOOPZ:为零是循环
LOOPNE:不相等时循环
LOOPPNZ:不为零是循环
LOOPPNEW:不相等时循环
LOOPNZW:不为零时循环
10.处理器控制
HLT:进入暂停状态
LOCK:封锁总线
NOP:无操作
WAIT:置处理器于等待状态
11.堆栈操作
ENTER:建立堆栈帧
LEAVE:结束堆栈帧
POP:字出栈
POPF:标志出栈
POPA:所有通用寄存器出栈
PUSH:字进栈
PUSHA:所有通用积存器进栈
PUSHF:标志进栈
12.串操作
CMPS:串比较
LODS:从串取
MOVS:串传送
REP:串重复
REPE:相等时重复
REPZ:为零时重复
REPNE:不相等时重复
REPNZ:不为零时重复
SCAS:串扫描
STDS:存入串
13.转移(条件)
INT溢出中断
JA:高于则转移
JAE:高于或等于则转移
JB:低于则转移
JBE:低于或等于则转移
JC:进位为1则转移
JCXZ:CX为零则转移
JE:相等则转移
JG:大于则转移
JGE:大于或等于则转移
JL:小于则转移
JLE:小于或等于
JNC:进位为零则转移
JNE:不相等则转移
JNG:不大于则转移
JNGE:不大于或等于则转移
JNL:不小于则转移
JNLE:不小于或等于则转移
JNA:不高于则转移
JNB:不低于则转移
JNBE:不低于或等于则转移
JNAE:不高于或等于则转移
JN不溢出则转移
JNP:奇偶位为0则转移
JNZ:结果不为零则转移
JNS:结果为正则转移
J若溢出则转移
JP:奇偶位为1则转移
JPE:奇偶性为偶则转移
JP奇偶性为奇则转移
JS:结果为负则转移
JZ:结果为零则转移
14.转移(无条件)
CALL:调用过程
INT:中断
IRET:中断返回
JMP:无条件转移
RET:返回
RETN/RETF:近返回/远返回
15.类型转换
CBW:字节转换为字
CDQ:双字转换为四字
CWD:字转换为双字
CWDE:字转换为扩展的双字