Register

Register
ExisfarRegister
X86_64 Registers
在x86-64架构中,16个通用寄存器的英文全称和功能确实可以帮助记忆。以下是它们的详细解析,按用途分类整理:
通用数据寄存器(Data Registers)
寄存器 | 全称 | 主要用途 |
---|---|---|
RAX | Accumulator Register | 累加器,用于算术运算和返回值 |
RBX | Base Register | 基址寄存器,常用于内存寻址 |
RCX | Counter Register | 循环/字符串操作计数器 |
RDX | Data Register | 存储数据或I/O端口操作 |
扩展名:
- 32位:
EAX
(Extended Accumulator)- 16位:
AX
(Accumulator)- 8位:
AH
/AL
(High/Low byte)
指针/索引寄存器(Pointer/Index Registers)
寄存器 | 全称 | 主要用途 |
---|---|---|
RSP | Stack Pointer | 栈顶指针(函数调用/返回) |
RBP | Base Pointer | 栈帧基址(局部变量定位) |
RSI | Source Index | 字符串/数组操作的源地址 |
RDI | Destination Index | 字符串/数组操作的目标地址 |
扩展名:
- 32位:
ESP
/ESI
/EDI
- 16位:
SP
/SI
/DI
扩展寄存器(Extended Registers, R8-R15)
寄存器 | 全称 | 主要用途 |
---|---|---|
R8 | Register 8 | 通用数据存储 |
R9 | Register 9 | 函数第5个参数(Linux调用约定) |
R10 | Register 10 | 临时寄存器 |
R11 | Register 11 | 临时寄存器 |
R12 | Register 12 | 全局数据指针 |
R13 | Register 13 | 通用数据存储 |
R14 | Register 14 | 通用数据存储 |
R15 | Register 15 | 通用数据存储 |
扩展名:
- 32位:
R8D
-R15D
- 16位:
R8W
-R15W
- 8位:
R8B
-R15B
指令指针寄存器(Control Register)
寄存器 | 全称 | 作用 |
---|---|---|
RIP | Instruction Pointer | 存储下一条指令地址(不可直接修改) |
标志寄存器(Flags Register)
寄存器 | 全称 | 作用 |
---|---|---|
RFLAGS | Flags Register | 存储CPU状态标志(如ZF、CF) |
记忆技巧
- 按功能分组:
- 前8个(RAX-RDI)是经典寄存器,后8个(R8-R15)是扩展寄存器。
RSP
/RBP
管栈,RSI
/RDI
管数据搬运。
- 联想英文全称:
RAX
(Accumulator)像“累加器”,RCX
(Counter)用于循环计数。RSP
(Stack Pointer)直指“栈顶”。
- 调用约定关联:
- Linux系统调用中,
RAX
存调用号,RDI
/RSI
/RDX
/RCX
/R8
/R9
传参。
示例代码(Linux调用约定)
mov rax, 1 ; 系统调用号1 (sys_write) |
Comment
匿名评论隐私政策