Appearance
题目
下列关于中断 I/O 方式的叙述中,错误的是( )。
错因
B
B 描述"保存断点和程序状态字在中断响应阶段完成"。中断响应阶段是 CPU 硬件自动执行的"中断隐指令"阶段——关中断、保存 PC(断点)和 PSW(程序状态字)到栈或专用寄存器、转入向量地址,全部由硬件无条件完成。B 叙述正确,不选 B。
C
C 描述"保存通用寄存器和设置新中断屏蔽字由软件实现"。这两件事属于中断服务程序的工作(即"现场保护"和"屏蔽字调整"),由开发者写在中断处理代码里、由 CPU 取指执行——本质是软件实现。C 叙述正确,不选 C。
D
D 描述"单重中断方式下,中断处理时 CPU 处于关中断状态"。单重中断 = 不允许中断嵌套——为此进入处理后必须关中断,处理完再开中断。这是单重中断的定义。D 叙述正确,不选 D。
总解析
题目问"错误的"叙述,A 是错的。
核心区分:中断的"两种优先级"完全不同——
| 优先级类型 | 决定什么 | 由谁决定 | 能不能在运行时改 |
|---|---|---|---|
| 中断响应优先级 | 当多个中断同时请求时,CPU 响应哪个 | 硬件(中断查询/优先级编码电路) | 不能——硬件固定 |
| 中断处理优先级 | 一个中断正在处理时,哪些中断能打断它(中断嵌套) | 中断屏蔽字(软件可改) | 能——程序运行时改屏蔽字即可 |
A 错在哪里:
A 说"中断屏蔽字用于确定中断响应的优先级"——把两种优先级混了:
- 中断屏蔽字决定的是处理优先级(这个中断处理过程中哪些其它中断能"打进来"),不是响应优先级
- 响应优先级是硬件电路出厂时就固定的,软件改不动——任你改屏蔽字也改不了"哪个先被响应"
响应阶段 vs 处理阶段(中断的两阶段):
[多中断同时请求]
↓
响应阶段(硬件自动):
- 按响应优先级(硬件固定)选出一个最高优先级的中断
- 中断隐指令:关中断 + 保存断点 PC + 保存 PSW + 转入向量地址
↓
处理阶段(软件,由中断服务程序执行):
- 保存通用寄存器("现场保护")
- 设置新的中断屏蔽字(决定本次处理时谁能打断我)
- 执行真正的中断业务
- 恢复现场
- 中断返回(开中断 + 恢复 PC、PSW)A 把"屏蔽字"放到了响应阶段——错位。屏蔽字属于处理阶段才登场,调整的是"嵌套时谁有资格打断我"。
最终答案是 A。
速记:
响应优先级 = 硬件固定,无法软件干预; 处理优先级 = 屏蔽字决定,软件随时可改。 谁是"上头先响应谁"——硬件说了算; 谁是"我处理时谁能进来"——程序员的屏蔽字说了算。