一、名词解释

 

寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

 

二、寄存器分类

 

数据寄存器 用来储存整数数字(参考以下的浮点寄存器)。在某些简单/旧的CPU,特别的数据寄存
器是累加器,作为数学计算之用。
地址寄存器 持有存储器地址,用来访问存储器。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)。
通用目的寄存器(GPRs)  - 可以保存数据或地址两者,也就是说它们是结合数据/地址 寄存器的功用。
浮点寄存器 (FPRs) - 用来储存浮点数字。
常数寄存器 用来持有只读的数值(例如0、1、圆周率等等)。
向量寄存器 - 用来储存由向量处理器运行SIMD(Single Instruction, Multiple Data)指令所得到的数据。
特殊目的寄存器- 储存CPU内部的数据,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。
指令寄存器(instruction register)- 储存现在正在被运行的指令
索引寄存器(index register)- 是在程序运行时用来更改运算对象地址之用。
在某些架构下,模式指示寄存器(也称为“机器指示寄存器”)储存和设置跟处理器自己有关的数据。由于他们的意图目的是附加到特定处理器的设计,因此他们并不被预期会成为微处理器世代之间保留的标准。有关从随机存取存储器提取信息的寄存器与CPU(位于不同芯片的储存寄存器集合)
存储器缓冲寄存器(Memory buffer register)
存储器数据寄存器(Memory data register)
存储器地址寄存器(Memory address register)
存储器型态范围寄存器(Memory Type Range Registers)
向量寄存器

 

三、指令寄存器

 

指令寄存器(Instructions Register,IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。 指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

 

四、工作原理

 

寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样说。
 
外部寄存器虽然也用于存放数据,但是它保存的数据具有特殊的用途。某些寄存器中各个位的0、1状态反映了外部设备的工作状态或方式;还有一些寄存器中的各个位可对外部设备进行控制;也有一些端口作为CPU同外部设备交换数据的通路。所以说,端口是CPU和外设间的联系桥梁。CPU对端口的访问也是依据端口的“编号”(地址),这一点又和访问存储器一样。不过考虑到机器所联接的外设数量并不多,所以在设计机器的时候仅安排了1024个端口地址,端口地址范围为0--3FFH。