12

内存地址寄存器(MAR)和程序计数器(PC)有何不同?

4

8 回答 8

12

不同之处在于程序计数器指向要获取/执行的下一条指令,而内存地址寄存器指向正在运行的程序将获取一些数据(不是指令)的内存位置。

于 2012-09-22T03:38:10.447 回答
9

PC:程序计数器(PC)保存下一条要执行或解码的指令的地址。

IR:指令寄存器(IR)保存当前正在执行或解码的指令。

MAR:内存地址寄存器(MAR)保存内存中位置的地址,其中包含当前正在执行的指令所需的数据。只需 MAR 指向包含所需数据的内存位置。

于 2016-06-25T14:05:15.387 回答
7

程序计数器 (PC) 存储当前指令执行后要从内存中取出的下一条指令的地址。

这个来自 PC 的地址被加载到地址寄存器 (AR) 中: AR<--PC

来自地址寄存器 (AR) 给出的内存位置的指令被加载到指令寄存器 (IR) 中:IR<--M[AR]

程序计数器递增到下一条指令的地址:PC<--PC+1

于 2018-05-14T16:27:51.183 回答
2

内存地址寄存器 (MAR) 保存将从中获取数据以带入 CPU 的寄存器组件的地址位置。

程序计数器 (PC) 保存 NEXT 指令的位置(存储在内存中的所有内容都有一个地址)。希望这有帮助

于 2013-07-09T06:59:57.350 回答
1

程序计数器 (PC) 是 CPU 正在执行的当前指令的地址。存储器地址寄存器 (MAR) 可以包含被加载或存储指令访问的数据的地址。

于 2012-06-04T16:22:40.070 回答
1

程序计数器使用逻辑地址(程序生成的虚拟地址),而地址寄存器使用物理地址(实际的真实内存地址)。这是主要区别。

于 2014-04-07T07:51:40.223 回答
1

程序计数器 程序计数器保存下一条要被提取-解码-执行的指令的地址。这将在当前指令被解码时自动增加

内存地址寄存器 (MAR) 保存正在执行的当前指令的地址。它指向所需指令所在的内存中的相关位置(在此阶段,地址只是从程序计数器中复制)。

于 2014-03-16T07:55:48.957 回答
0

我在一本书中读到它

PC 只保存指令的地址

PC 在将指令地址传递给 MAR 后立即添加一个数字

MAR 在寻址周期中保存指令的地址

在后续提取周期中保存数据的地址

这些是差异的一部分(可能还有其他差异)

于 2021-03-16T13:09:03.753 回答