寄存器 (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 汇编器与汇编语言
相关话题 汇编器 使用汇编语言编程