寄存器 (Register )是中央处理器 内用来暂存指令、数据 和地址 的存储器 。寄存器的存贮容量有限,读写速度非常快。在计算机体系结构 里,寄存器存储在已知时间点所作计算的中间结果,通过快速地访问数据来加速计算机程序 的执行。[ 1]
寄存器位于存储器层次结构 的最顶端,也是CPU可以读写的最快的存储器,事实上所谓的暂存已经不像存储器,而是非常短暂的读写少量信息并马上用到,因为通常程序执行的步骤中,这期间就会一直使用它。寄存器通常都是以他们可以保存的比特 数量来计量,举例来说,一个8位 寄存器或32位 寄存器。在中央处理器中,包含寄存器的部件有指令寄存器 (IR)、程序计数器 和累加器 。寄存器现在都以寄存器数组 的方式来实现,但是他们也可能使用单独的触发器 、高速的核心存储器 、薄膜存储器 以及在数种机器上的其他方式来实现出来。
寄存器 也可以指代由一个指令 之输出或输入可以直接索引到的寄存器组群,这些寄存器的更确切的名称为“架构寄存器”。例如,x86 指令集定义八个32位寄存器的集合,但一个实现x86 指令集 的CPU 内部可能会有八个以上的寄存器。
资料寄存器
用来存储整数 数字(参考以下的浮点寄存器)。在某些简单(或旧)的CPU,特别的资料寄存器是用于数学计算的累加器 。
地址寄存器
持有存储器地址,以及用来访问存储器 。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器 (可能出现一个或多个)。
通用目的寄存器
(GPR s)- 可以保存资料或地址两者,也就是说他们是结合 资料/地址 寄存器的功用。
浮点寄存器
(FPR s)- 用来存储浮点 数字。
常量寄存器
用来持有只读的数值(例如0、1、圆周率等等)。由于“其中的值不可更改”这一特殊性质,这些寄存器未必会有实体的硬件电路相对应,例如将从零常数寄存器读的操作实现为接通目标寄存器的下拉电阻 。
一般而言,即使真正在硬件中放置常数寄存器也未必会是出于体系结构理论上的考虑,而很可能是由硬件描述语言 为了简化操作而自动生成的电路。
向量寄存器
用来存储由向量处理器执行SIMD 指令所得到的资料。
特殊目的寄存器
存储CPU内部的资料,像是程序计数器 (或称为指令指针 ),堆栈寄存器 ,以及状态寄存器 (或称微处理器状态字组)。
指令寄存器 - 存储现在正在被执行的指令
变址寄存器 - 是在程序执行时用来更改操作数地址之用。
在某些架构下,模式指示寄存器 (也称为“机器指示寄存器”)存储和设置跟处理器自己有关的资料。由于他们的意图目的是附加到特定处理器的设计,因此他们并不被预期会成微处理器世代之间保留的标准。
有关从随机存储器 提取信息的寄存器与CPU(位于不同芯片的存储寄存器集合)
^ Glenn Brookshear , Dennis Brylow. Computer Science: An Overview, 13/e (IE-Paperback). Pearson FT Press. 2019-02-25: p.112–113. ISBN 1292263423 .
x86 汇编器与汇编语言
相关话题 汇编器 使用汇编语言编程