> For the complete documentation index, see [llms.txt](https://s2.shizhz.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://s2.shizhz.me/s2e4/6.md).

# 4.6. 寄存器：CPU 的存储单元

CPU 与内存是两个独立的芯片，计算机运行时，CPU 通过总线与内存交换数据，这种数据传输通道的速率远远低于CPU的时钟周期，为了加快CPU的处理速度，芯片制造者们在CPU内部加入了寄存器（Register）。

寄存器是位于 CPU 内部的存储组件，构造寄存器的底层原理与构造内存是一样的。CPU 中的寄存器分为专用寄存器与通用寄存器，专用寄存器有专门的用途，甚至其内容不允许用户直接修改，例如 PC(Program Counter); 而通用寄存器的用途由编程人员自己决定。下图是英特尔 X86 系列最早的芯片 Intel 8086 所定义的寄存器：

![Intel 8086 Registers](https://4257267501-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdQXCtxb9g6w1DURwQ9%2F-MdWKlKNQdKW9dQ6SVSt%2F-MdWSw8QrutKihpO203y%2F8086_registers.png?alt=media\&token=d96a1dd3-af95-4233-8138-b1e9385658f2)

寄存器的数目是极其有限的，因此 CPU 内部的每个寄存器都有固定的编码，例如上图中，寄存器 AX 指代的就是由 AH 与 AL 两个 8 位寄存器组成的一个 16 位寄存器。也就是说，从编程人员的视角来看（除非直接写二进制的机器指令），CPU 指令对寄存器的寻址是通过名字进行的，这是与内存寻址方式最大的不同。
