【发布时间】:2016-02-15 01:09:45
【问题描述】:
考虑以下微操作序列。
MBR ← PC
MAR ← X
PC ← Y
Memory ← MBR
以下哪一项是该序列可能执行的操作?
- 指令获取
- 操作数获取
- 条件分支
- 中断服务的启动
答案是选项 (4)。
我的尝试:
- 指令取指:取指令:从 PC 中的地址读取指令代码并放入 IR。 (红外←内存[PC])
- 操作数获取:必要时从内存中获取操作数:如果任何操作数是内存地址,则启动内存读取周期以将它们读入 CPU 寄存器。如果操作数在内存中,而不是在寄存器中,则操作数的内存地址称为有效地址,简称 EA。因此,操作数的获取可以表示为寄存器←内存[EA]。在当今的计算机上,CPU 比内存快得多,因此操作数提取通常需要多个 CPU 时钟周期才能完成。
- 如果满足条件(且寄存器不为 0),条件分支指令会导致 PSW 中的位置计数器设置为寄存器中指定的地址或寄存器加上 12 位偏移量
- 中断服务例程 (ISR) 是硬件调用以响应中断的软件例程。 ISR 检查中断并确定如何处理它。 ISR 处理中断,然后返回一个逻辑中断值。
对于option中给出的操作,你能按照微操作的顺序来解释吗?
【问题讨论】:
-
问题是什么?
-
我要求进行微操作,例如给定
MBR ← PC MAR ← X PC ← Y Memory ← MBR用于 Initiation of interrupt service 。同样,如果您可以为其他选项(1),(2)和(3)提供正确的codes? -
我有点疑惑,
memory <- MBR不是内存写的吗?列出的所有操作都不执行内存写入。 -
如果返回地址写在内存中的某个预定义位置,可能是中断,但我怀疑......
-
对于options中给出的操作,你能按照微操作的顺序来解释吗?
标签: assembly operating-system interrupt computer-architecture isr