目录
1.汇编语言简介
-
汇编语言:接近机器码的低级语言,每条指令对应 CPU 一条机器指令。
-
用途:操作寄存器、内存,控制硬件,系统底层开发,逆向分析。
-
架构:本文以 x86/x86-64 架构为主,部分指令兼容 ARM、MIPS 需另行学习。
2.CPU寄存器概览(x86/x64)
寄存器名称 | 作用描述 |
EAX / RAX | 累加寄存器,算术操作常用 |
EBX / RBX | 基址寄存器,数据指针 |
ECX / RCX | 计数寄存器,循环计数,字符串操作 |
EDX / RDX | 数据寄存器,乘除运算及I/O端口 |
ESI / RSI | 源索引寄存器,字符串操作源 |
EDI / RDI | 目的索引寄存器,字符串操作目标 |
ESP / RSP | 堆栈指针,指向当前栈顶 |
EBP / RBP | 基址指针,指向当前栈帧基址 |
RIP | 指令指针(64位),下一条执行地址 |
3.基本寻址方式
-
立即数:
mov eax, 10
-
寄存器:
mov ebx, eax
-
内存寻址:
-
直接寻址:
mov eax, [0x00400000]
-
寄存器间接寻址:
mov eax, [ebx]
-
基址+偏移:
mov eax, [ebx+4]
-
基址+变址+比例+偏移:
mov eax, [ebx + esi*4 + 8]
-
4.常用数据传输指令
指令 | 作用 | 示例 |
MOV | 复制数据 | mov eax, ebx |
PUSH | 压栈 | push eax |
POP | 出栈 | pop ebx |
LEA | 计算有效地址 | lea eax, [ebx+4] |
XCHG | 交换寄存器/内存数据 | xchg eax, ebx |
5.算术与逻辑运算指令
指令 | 说明 | 示例 |
ADD | 加法 | add eax, 10 |
SUB | 减法 | sub eax, ebx |
MUL | 无符号乘法 | mul ebx |
IMUL | 有符号乘法 | imul ebx |
DIV | 无符号除法 | div ebx |