CPU寄存器有什么作用?什么是专用寄存器?


CPU寄存器是计算机处理器的一部分,是一个小型且临时的存储单元,包含一组数据存储位置。寄存器可以保存指令、存储地址或任何类型的数据。

在尝试理解一些专用寄存器之前,让我们先了解一下通用寄存器和专用寄存器的区别。

  • 专用寄存器保存程序的状态。这些寄存器被指定用于特殊用途。其中一些寄存器是堆栈指针、程序计数器等。

  • 通用寄存器在执行不同操作时保存临时数据。其中一些寄存器是累加器、BX等。

专用寄存器

让我们看看CPU中使用的一些专用寄存器。

指令寄存器 (IR)

指令寄存器 (IR) 存储当前正在执行的指令。在简单的处理器中,每条要执行的指令都加载到指令寄存器中,并在解码、准备和最终执行时将其保存。

在LMC中,无条件分支(BRANCH)和零分支(BRANCH IF ZERO)代替了指令寄存器。

状态寄存器

状态寄存器、标志寄存器或条件码寄存器是基于处理器的状态标志集合。状态寄存器也是一个硬件寄存器,包含有关处理器状态的信息。

该寄存器大小为16位,每一位代表一个标志。状态寄存器用于不同的条件,例如结果是否为负数、结果是否为零等。有不同类型的状态寄存器,例如程序状态寄存器保存程序当前执行的状态。

它还控制中断的启用和禁用,并设置处理器的工作模式。

程序状态寄存器分为以下几部分:

  • 应用程序程序状态寄存器 (APSR)

  • 中断程序状态寄存器 (IPSR)

  • 执行程序状态寄存器 (EPSR)

**如果标志为Z** - 表示加载的算术运算结果为零。

**如果标志为N** - 表示数学运算结果为负。

**如果标志为V/O** - 表示运算结果太大,无法放入寄存器中。这就是结果溢出的原因。

**如果标志为P** - 表示最后结果中设置位的数量是奇数还是偶数。

移位寄存器

移位寄存器是一种顺序逻辑电路,能够存储和传输数据,由触发器组成,并以这样一种方式连接:一个触发器的输出将作为另一个触发器的输入(取决于使用哪种类型的移位寄存器)。

有六种类型的移位寄存器,如下所示:

  • **串行输入-串行输出移位寄存器** - 它以串行方式逐个输入数据,并以类似的方式输出数据。

  • **串行输入-并行输出移位寄存器** - 它以串行方式转换数据,并以并行方式输出数据。

  • **并行输入-串行输出移位寄存器** - 它并行接收数据,并以串行方式(一个接一个)输出数据。

  • **并行输入-并行输出移位寄存器** - 并行输入数据,并同时并行输出数据。

  • **双向移位寄存器** - 此移位寄存器可以执行向右或向左的数据移位,或者可以在这两个方向上执行。

  • **计数器** - 它将其输出反馈到设备作为输入,从而创建特定模式或序列。

累加器寄存器 (AC)

它用于存储系统产生的结果。当CPU执行后给出结果时,所有结果都存储到AC寄存器中。

存储地址寄存器 (MAR)

它用于保存数据和指令的内存地址。在指令的执行阶段,它从内存中访问数据和指令。例如,CPU想要将一些数据存储到内存中或从内存中读取数据。它将所需内存位置的地址放入MAR中。

程序计数器 (PC)

它包含下一条要执行指令的地址。换句话说,当微处理器执行当前指令时,它保存下一条指令的内存位置的地址。

更新于:2021年11月26日

16K+浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告