Skip to content

2021年 408 计算机组成原理 第 17 题

计算机组成原理2021年选择题2分

题目

下列存储器中,汇编语言程序员可见的是( )。

Ⅰ. 指令寄存器

Ⅱ. 微指令寄存器

Ⅲ. 基址寄存器

Ⅳ. 标志状态寄存器

错因

A

把 IR 和 MIR 当成可见。IR 在取指阶段由 CPU 自动加载当前指令,汇编里没有任何指令能直接操作它;MIR 是微程序控制器内部寄存器,连指令集都触及不到。这两个都是"硬件实现细节",对汇编程序员完全透明。

B

漏判了"指令寄存器是否可见"。IR 经常出现在数据通路图里、考点里,容易误以为"这么重要的东西程序员肯定能用"——但实际上 IR 是 CPU 取指阶段的中间存放器,由硬件自动管理。程序员可见 ≠ 硬件中存在:可见的标准是"汇编指令集里能否读 / 写它",IR 不能。

C

把 MIR 当成可见——MIR 是微程序设计的实现机制,仅当前 CPU 设计者用,对外完全屏蔽(不同型号的 CPU 同样的指令集,微指令组成可以完全不同)。Ⅳ 选对了,但 Ⅱ 选错。

总解析

核心判定:"汇编语言程序员可见"等价于该寄存器是否出现在 ISA(指令集架构)里、能否被某条汇编指令直接读 / 写

逐项判断

编号寄存器可见?理由
指令寄存器(IR)不可见CPU 取指阶段自动加载,无任何汇编指令操作它
微指令寄存器(MIR)不可见微程序控制器内部部件,是 CPU 实现细节,不在 ISA 中
基址寄存器可见用于基址寻址,汇编里 MOV [BX+DISP], AX 这种用法直接读它
标志状态寄存器(PSW / FLAGS)可见算术指令隐式写、条件跳转 JZ JC 隐式读,部分 ISA 还有显式 PUSHF / POPF

只有 Ⅲ、Ⅳ 可见。

最终答案是 D(仅Ⅲ、Ⅳ)

程序员可见 vs 不可见 速查

类别例子程序员可见?
通用寄存器AX/BX/EAX/RAX、s0~s11、x0~x31
程序计数器 PCEIP / RIP / pc✓(部分 ISA 直接见、部分通过分支间接见)
基址 / 变址寄存器BP、SI、DI
标志寄存器 PSW / FLAGSEFLAGS、SR
指令寄存器 IRCPU 取指中间寄存器
微指令寄存器 MIR、控制存储器 CM微程序实现细节
MAR / MDR主存接口寄存器(CPU 内部,对外仅暴露 load/store 指令)

记忆口诀:"用得上的(参与寻址 / 算术结果 / 条件判断)就可见,自动管理的(取指 / 微编码)就不可见"。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题