题目
下列关于程序中断方式和DMA方式的说法中错误的是()。I. 程序中断过程是由硬件和中断服务程序共同完成的II. 在每条指令的执行过程中,每个总线周期要检查一次有无中断请求III. 检测有无DMA请求,一般安排在一条指令执行过程的末尾IV. 中断服务程序的最后指令是无条件转移指令V. 中断响应判优是根据中断屏蔽[1]字来确定中断的优先级A. II III IVB. I III IVC. II III IV VD. II IV V
下列关于程序中断方式和DMA方式的说法中错误的是()。
I. 程序中断过程是由硬件和中断服务程序共同完成的
II. 在每条指令的执行过程中,每个总线周期要检查一次有无中断请求
III. 检测有无DMA请求,一般安排在一条指令执行过程的末尾
IV. 中断服务程序的最后指令是无条件转移指令
V. 中断响应判优是根据中断屏蔽[1]字来确定中断的优先级
A. II III IV
B. I III IV
C. II III IV V
D. II IV V
题目解答
答案
I. 正确。程序中断过程由硬件(如中断请求检测、断点保存、向量识别)和软件(中断服务程序)共同完成。
II. 错误。CPU并非在每个总线周期都检查中断请求,而是在每条指令执行结束时检查是否有中断请求,以保证当前指令的完整性。
III. 错误。DMA请求的检测通常安排在当前总线周期结束时,而不是“一条指令执行过程的末尾”,因为DMA需要立即响应总线请求,与指令边界无关。
IV. 错误。中断服务程序的最后一条指令是中断返回指令(如IRET),不是无条件转移指令。中断返回指令会恢复断点和程序状态,返回原程序继续执行。
V. 正确。中断响应时的优先级判断确实依据中断屏蔽字,屏蔽字中某位为1表示屏蔽对应中断源[2],为0表示允许,从而动态调整优先级。
综上,错误的说法是 II、III、IV。
因此,正确选项是 A。
答案:
A
解析
本题主要考查程序中断方式和DMA方式的相关知识,解题思路是对每个关于程序中断方式和DMA方式的说法进行逐一分析,依据其原理和特点判断其正确性。
- 对于说法I:
- 程序中断过程中,硬件负责中断请求的检测、断点的保存以及中断向量的识别等操作。例如,当外部设备发出中断请求信号时,硬件会检测到该信号,并将当前程序的断点(如程序计数器的值)保存起来,同时根据中断向量找到对应的中断服务程序入口地址。
- 而中断服务程序则是由软件编写的,用于处理具体的中断事件。所以程序中断过程是由硬件和中断服务程序共同完成的,该说法正确。
- 对于说法II:
- CPU为了保证当前指令的完整性,不会在每个总线周期都检查中断请求。通常是在每条指令执行结束时,才会检查是否有中断请求。因为如果在指令执行过程中频繁检查中断请求,可能会导致指令执行不完整,影响程序的正常运行。所以该说法错误。
- 对于说法III:
- DMA(直接内存访问)请求的检测一般安排在当前总线周期结束时。这是因为DMA需要立即响应总线请求,以实现高速的数据传输,它与指令边界无关。而“一条指令执行过程的末尾”这种表述不准确,因为指令执行过程可能包含多个总线周期,DMA请求的检测更关注总线周期的结束。所以该说法错误。
- 对于说法IV:
- 中断服务程序的最后一条指令是中断返回指令(如IRET),而不是无条件转移指令。中断返回指令的作用是恢复断点和程序状态,使程序能够返回到原程序继续执行。如果使用无条件转移指令,就无法正确恢复原程序的执行环境,会导致程序运行错误。所以该说法错误。
- 对于说法V:
- 中断响应判优是根据中断屏蔽字来确定中断的优先级。中断屏蔽字是一个二进制数,其中每一位对应一个中断源。当屏蔽字中某位为1时,表示屏蔽对应中断源,即该中断源的请求不会被响应;当某位为0时,表示允许该中断源的请求,从而可以动态调整中断的优先级。所以该说法正确。