📜  门|门CS 2013 |问题 28

📅  最后修改于: 2021-09-25 04:47:19             🧑  作者: Mango

考虑以下微操作序列。

MBR ← PC 
     MAR ← X  
     PC ← Y  
     Memory ← MBR

以下哪一项是该序列可能执行的操作?
(A)取指令
(B)操作数获取
(C)条件分支
(D)中断服务的启动答案: (D)
说明: MBR – 内存缓冲寄存器(用于存储传入和传出立即访问存储的数据)

MAR – 内存地址寄存器(保存需要访问的数据的内存位置。)

PC——程序计数器(它包含当前正在执行的指令的地址)

第一条指令将 PC 的值放入 MBR

第二条指令将地址 X 放入 MAR。

第三条指令将地址 Y 放入 PC。

第 4 条指令将 MBR 的值(即旧的 PC 值)放入内存中。

现在从第 1 条和第 4 条指令可以看出,控制流程不是顺序的,PC 的值存储在内存中,以便控制可以再次回到它离开执行的地址。

在中断处理的情况下可以看到这种行为。这里X可以是内存中包含中断服务程序起始地址的位置的地址。
Y 可以是中断服务程序的起始地址。

在条件分支的情况下(对于选项 C ),仅用目标地址更新 PC 并且不需要将旧的 PC 值存储到内存中。

在取指令和取操作数的情况下(对于选项 A 和 B),PC 值不会存储在其他任何地方。

因此选项 D。
这个问题的测验