NOTE

1.3 寄存器

x86-64 寄存器学习笔记,包括通用寄存器、RIP、段寄存器与栈相关寄存器。

Computer Architecture & Assembly创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

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
  • 主要用于临时存放数据
  • 64bit,也可用作32/16/8bit

3.2. 程序计数寄存器(也叫PC寄存器)

  • rip寄存器
  • 它用来存放下一条即将执行的指令的地址
  • 64bit

3.3. 段寄存器

  • fs和gs寄存器
  • 一般用它来实现线程本地存储(TLS)
  • 16bit

4. 参考