跳到正文
IGCSE·Tuition
计算机科学 · 课程

把寄存器与其作用对应起来

当题目描述一个事件并问涉及哪个寄存器时,五个寄存器的名字很容易混在一起。

本页内容
  1. 每个寄存器存放什么?
  2. 例题详解
  3. 要留意的错误
  4. 自我检测
  5. 下一步

简化模型中的每个寄存器都只有一项工作。好的答案按寄存器存放的东西来命名:一个地址、一份数据、当前指令、下一个地址,或一个运算结果。

这一课接续追踪指令周期,属于硬件与处理。接下来你会看到程序和文件存放在哪里。

每个寄存器存放什么?

寄存器存放何时改变
PC(程序计数器)下一条指令的地址每次 fetch 时加 1;跳转时被覆盖
MAR(内存地址寄存器)正在读取或写入的位置的地址fetch 开始,或加载、存储指令运行时
MDR(内存数据寄存器)刚读出或即将写入的数据或指令内存被读取或写入时
CIR(当前指令寄存器)正在解码和执行的指令fetch 结束时
ACC(累加器)工作值以及算术或逻辑运算的结果加载、算术或逻辑指令执行时

有两个部件与寄存器配合工作。ALU(算术逻辑单元)负责计算和比较。

控制单元负责解码指令并发出控制信号。寄存器与它们一起位于处理器内部。

三条总线(bus)在处理器和内存之间传送信号:地址总线(传地址)、数据总线(传数据和指令)和控制总线(传读或写等控制信号)。

例题详解

ACC 存着 20,地址 500 存着 9。CIR 中的指令是 ADD 500,下一条指令在地址 41。题目要求:为每一句话选出对应的寄存器。

  • “内存被访问时,它存着 500。”这是地址,所以是 MAR。
  • “内存被读取后,它存着 9。”这是数据,所以是 MDR。
  • “decode 期间,它存着 ADD 500。”这是指令,所以是 CIR。
  • “它存着 41。”下一条指令的地址属于 PC。(它在 fetch 时已经加过 1。)
  • “指令完成后,它存着 29。”结果在 ACC,因为 20 + 9 = 29。

注意,每一项的答案都是靠问自己“这是什么类型的东西:地址、数据、指令还是结果?”来选出的。

要留意的错误

学生常说 MAR 存数据,因为 MAR“与内存相连”。

错误答案:“MAR 存着从地址 500 读出的值 9。”

这个值是数据,数据经过 MDR。MAR 存的是地址 500。

改正的办法是成对记忆:MAR 对应地址总线,MDR 对应数据总线。MAR 也不等于 PC。PC 存下一条指令的地址;MAR 存当前正在访问的任何地址,可能是指令,也可能是数据位置。

自我检测

1. 一条存储指令把 44 写入地址 310。写入之前,哪个寄存器存 310,哪个存 44?

查看答案

MAR 存 310(地址)。MDR 存 44(要写入的数据)。

2. 一次 fetch 之后,PC 是 77。假设每次 fetch 使 PC 加 1,取出的是哪个地址?

查看答案

fetch 之前 PC 是 76,所以指令来自地址 76。fetch 期间 MAR 存着 76。

3. 判断对错:累加器存放正在执行的指令。请说明理由。

查看答案

**错。**指令存放在 CIR。累加器存放正在计算的值和结果。

下一步

做硬件与处理练习题时,可以把上面的表格当作检查清单。受限伪代码追踪训练器很适合观察寄存器依次变化。

说对寄存器是一项小技能,但许多硬件分数就在这里得失。我们的老师在线上一对一计算机科学补习中,可以用新情境反复练习,直到你不再犹豫。

常见问题

MAR 和 MDR 有什么区别?

MAR 存的是地址,也就是内存中即将被读取或写入的位置。MDR 存的是刚从该位置读出、或即将写入该位置的数据或指令。快速判断:如果它指明的是一个位置,就是 MAR;如果是一个值,就是 MDR。

累加器(ACC)和 ALU 是同一个东西吗?

不是。ALU 是执行算术和逻辑运算的电路。累加器是寄存器,存放 ALU 使用的值以及它产生的结果。可以这样描述:ALU 负责计算,ACC 负责存放正在处理的数值。

控制单元对寄存器做什么?

控制单元解码 CIR 中的指令,并发出控制信号,让正确的部件在正确的时间动作,例如通知内存读取或让 ALU 做加法。它本身不存放你的数据。在答案中,把它写成协调整个周期的部分即可。

资料来源

  1. Cambridge IGCSE Computer Science 0478 科目页面

更新于:

下一步

如果题目措辞一变,你仍会在 MAR 和 MDR 之间猜,一对一的老师可以给你新的情境,直到每个寄存器的作用成为反射。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生