跳转至

汇编指令速查表

本表以 x86-64 Intel 语法为主。

数据传送

指令 含义 示例
mov 复制数据 mov rax, rbx
lea 计算有效地址 lea rax, [rbx+8]
push 入栈 push rbp
pop 出栈 pop rbp
xchg 交换 xchg eax, ebx
movzx 零扩展复制 movzx eax, byte ptr [rdi]
movsx 符号扩展复制 movsx eax, byte ptr [rdi]

算术指令

指令 含义
add 加法
sub 减法
inc 加 1
dec 减 1
neg 取负
imul 有符号乘法
mul 无符号乘法
idiv 有符号除法
div 无符号除法

逻辑与位运算

指令 含义
and 按位与
or 按位或
xor 按位异或
not 按位取反
shl / sal 左移
shr 逻辑右移
sar 算术右移
rol 循环左移
ror 循环右移

比较与测试

指令 含义
cmp 比较,设置标志位
test 按位与测试,设置标志位

跳转指令

指令 含义
jmp 无条件跳转
je / jz 相等或零
jne / jnz 不相等或非零
jg / jnle 有符号大于
jge / jnl 有符号大于等于
jl / jnge 有符号小于
jle / jng 有符号小于等于
ja / jnbe 无符号大于
jae / jnb 无符号大于等于
jb / jnae 无符号小于
jbe / jna 无符号小于等于

函数调用

指令 含义
call 调用函数
ret 函数返回
leave 恢复栈帧

字符串和批量操作

指令 含义
movsb 移动字节
stosb 存储字节
cmpsb 比较字节
scasb 扫描字节
rep 重复执行

常见标志位

标志 含义
ZF 零标志
CF 进位标志
SF 符号标志
OF 溢出标志
PF 奇偶标志

系统调用

指令 含义
syscall 进入内核执行系统调用

Linux x86-64 系统调用参数寄存器:

rax = syscall number
rdi = arg1
rsi = arg2
rdx = arg3
r10 = arg4
r8  = arg5
r9  = arg6