赞
踩
作者:虫二(二进制逆向星球学员)
## 汇编指令
### 寄存器类
#### 0x01 通用寄存器
累加器(E)AX = accumulator
基址寄存器(E)BX = base
计数器(E)CX = counter
变址寄存器(E)DX = data
#### 0x02 段寄存器
代码段寄存器 CS = code segment
数据寄存器 DS = data segment
堆栈寄存器 SS = stack segment
附加寄存器 ES = extra segment
#### 0x03 特殊功能寄存器
指令指针寄存器 IP = instruction pointer
堆栈指针 SP = stack pointer
基址指针 BP = base pointer
源变址寄存器 SI = source index
目标变址寄存器 DI = destination index
标志寄存器 FR = flag register
### 指令类
#### 0x01数据传送指令
MOV = mov 换码
MOVSX = extended move with sign data 符号传送
MOVZX = extended move with zero data 零传送
PUSH = push 压栈
POP = pop 出栈
PUSHA = push all 全部压栈
POPA = pop all 全部出栈
PUSHAD = push all data
POPAD = pop all data
BSWAP = byte swap 交换字节
XCHG = exchange 交换
CMPXCHG = compare and change 比较交换
XADD = exchange and add 交换并且相加
XLAT = translate 换码
#### 0x02 输入输出端口传送指令
IN = input 端口输入
OUT = output 端口输出
#### 0x03 目的地址传送指令
LEA = load effective address 加载有效地址
LDS = load data segment 加载数据段
LES = load extra segment 加载附加段
LFS = load flag segment 加载标志段
LGS = load global segment 加载全局段
LSS = load stack segment 加载堆栈段
#### 0x04 标志传送指令
LANF = load AH from flag 加载标志低八
SANF = save AH to flag 恢复标志低八
PUSHF = push flag 标志压栈
POPF = pop flag 标志出栈
PUSHD = push data flag
POPD = pop data flag
### 算术指令
ADD = add 加
ADC = add with carry 进位加
INC = increase 1 自增
AAA = ascii add with adjust 调整加
DAA = decimal add with adjust 调整加十
SUB = substract 减
DEC = decrease 1 自减
NEC = negative 求反
CMP = compare 比较
AAS = ascii adjust on substract 调整减
DAS = decimal adjust on substract调整减十
MUL = multiplication 乘
AAM = ascii adjust on multiplication 调整乘
DIV = divide 除
IDIV = integer divide 符号整除
AAD = ascii adjust on divide 调整除
CBW = change byte to word 转换字节
CWD = change word to double word 转换字
CWDE = change word to double word with sign to EAX 扩展字
CDQ = change double word to quadrate word 转换双字
### 逻辑指令
AND = and 与
OR = or 或
XOR = xor 异或
NOT = not 非
TEST = test 数测试
SHL = shift left 逻辑左移
SAL = arithmetic shift left 算术左移
SHR = shift right 逻辑右移
SAR = arithmetic shift right 算术右移
ROL = rotate left 循环左移
ROR = rotate right 循环右移
RCL = rotate left with carry 进位循环左移
RCR = rotate right with carry 进位循环右移
### 控制移动指令
#### 0x01无条件转移指令(长转移)
JMP = jump 跳转
CALL = call 过程调用
RET = return 过程返回
RETF = return far 远过程返回
#### 0x02 条件转移指令(短转移,-128 到+127的距离)
JA = jump when above 高于跳转
JAE = jump when above or equal 高于或等于跳转
JNB = jump when not below 不低于跳转
JB = jump when below 低于跳转
JNAE = jump when not above or equal 不高于或等于跳转
JBE = jump when below or equal 不高于跳转
JNA = jump when not above 不高于跳转
JG = jump when greater 大于跳转
JNLE =jump when not less or equal 不低于或等于跳转
JGE = jump when greater or equal 大于或等于跳转
JNL = jump when not less 不小于跳转
JL = jump when less 小于跳转
JNGE = jump when not greater or equal 不大于或等于跳转
JLE = jump when less or equal 不等跳转
JNG = jump when not greater 不大于跳转
JE = jump when equal 相等跳转
JNE = jump when not equal 不等于跳转
JZ = jump when has zero flag
JNZ = jump when not has zero flag
JC = jump when has carry flag
JNC = jump when not has carry flag
JNO = jump when not has overflow flag 不溢出跳转
JNP = jump when not has parity flag 非奇偶跳转
JPO = jump when parity flag is odd
JNS = jump when not has sign flag 非负跳转
JO = jump when has overflow flag 溢出跳转
JP = jump when has parity flag 奇偶跳转
JPE = jump when parity flag flag is even
JS. = jump when has sign flag 负号跳转
### 循环控制指令(短转移)
LOOP = loop 计数循环
LOOPE = loop equal 相等循环
LOOPZ = loop zero 为零循环
LOOPNE = loop not equal 不等循环
LOOPNZ = loop not zero 非零循环
JCXZ = jump when CX is zero 计数一六零跳转
JECXZ = jump when ECX is zero 计数三二零跳转
### 中断指令
INT = interrupt
INTO = overflow interrupt
IRET = interrupt return
### 处理器控制指令
HLT = halt 停
WAIT = wait 等待
ESC = escape
LOCK = lock 锁
NOP = no operation 空
STC = set carry 进位设置
CLC = clear carry 进位清零
CMC = carry make change 进位求反
STD = set direction 方向设置
CLD = clear direction 方向清零
STI = set interrupt 中断设置
CLI = clear interrupt 中断清零
### 串操作指令
MOVS = move string 传送字符串
MOVSB = move string byte 传送字节串
MOVSD = move string double 传送双字节串
CMPS = compare string byte 比较字符串
CMPSB = compare string double 比较双字串
SCAS = scan string 扫描字符串
SCASB = scan string byte 扫描字节串
SCASD = scan string double 扫描双字串
LODS = load string 加载源变址字符串
LODSB = load string byte 加载源变址字节串
LODSD = load string double 夹在源变址双字串
STOS = store string 保存字符串
STOSB = store string byte 保存字节串
STOSD = store string double 保存双字串
REP = repeat 重复
REPE = repeat when equal 相等重复
REPNE = repeat when not equal 不相等重复
REPZ = repeat when zero flag
REPNZ = repeat when not zero flag
REPC = repeat when carry flag
REPNC = repeat when not carry flag
### 伪指令
DW = define word 定义字(2字节)
PROC = procedure 定义过程
ENDP = end of procedure 进程结束
SEGMENT = segment 定义段
ASSUME = assumes 建立段寄存器寻址
ENDS = end segment 段结束
END = end 程序结束
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。