NOTE
1.3 寄存器
x86-64 寄存器学习笔记,包括通用寄存器、RIP、段寄存器与栈相关寄存器。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 寄存器是什么
CPU内部的存储单元 用于存放从内存读取而来的数据(包括指令)和CPU运算的中间结果
2. 为什么需要寄存器
CPU读写寄存器的速度比读写内存的速度快得多
3. 寄存器分类
不同体系结构的CPU,其内部寄存器的数量、种类以及名称不一样,以AMD64体系为例
3.1. 通用寄存器
- rax, rbx, rcx, rdx, rsi, rdi, rbp, rsp, r8, r9, r10, r11, r12, r13, r14, r15寄存器
- rsp和rbp两个寄存器都跟函数调用栈有关
- rsp寄存器一般用来存放函数调用栈的栈顶地址,
- rbp寄存器通常用来存放函数的栈帧起始地址。
- 举例参考进程.md
- rsp和rbp两个寄存器都跟函数调用栈有关
- 主要用于临时存放数据
- 64bit,也可用作32/16/8bit

3.2. 程序计数寄存器(也叫PC寄存器)
- rip寄存器
- 它用来存放下一条即将执行的指令的地址
- 64bit
3.3. 段寄存器
- fs和gs寄存器
- 一般用它来实现线程本地存储(TLS)
- 16bit