题24
题目
【2012 统考真题】中断处理和子程序调用都需要压栈, 以便保护现场, 中断处理一定会保存而子程序调用不需要保存其内容的是 ( )。
A. 程序计数器
B. 程序状态字寄存器
C. 通用数据寄存器
D. 通用地址寄存器
分析
这个题感觉做过类似的,中断处理因为肯定要返回,所以现场和当前的入口肯定要保护
我记得是B
解
B
子程序调用不改变程序的状态, 因为子程序调用是编译器可控aB流程, 而中断不是。
以程序
编译器不在这两条指令中间插入任何子程序调用代码, 因此标志位不变, 但中断却随时可能发生,导致标志位改变。
具体地说,执行
假设刚好在生成相应的标志位后发生了中断, 若不保存 PSW 的内容, 则后续根据标志位来进行跳转的流程就可能发生错误。
但是, 若进行了子程序调用, 则说明已经根据
综上所述, 中断处理和子程序调用都有可能使 PSW 的内容发生变化, 但中断处理程序执行完返回后, 可能需要用到 PSW 原来的内容, 子程序执行完返回后, 一定不需要用到 PSW 原来的内容, 因此选 B。
A 项都会保存,