微型计算机技术及应用(戴梅萼_4)习题答案
而分开修改,导致堆栈指针的错误,因此CS、IP、FR进入错误的堆栈区域而破坏
该单元的数据或程序。
2.33 在编写中断处理子程序时,为什么要在子程序中保护许多寄存器?有些寄存器即使在中断
处理子程序中并没有用到也需要保护,这又是为什么(联系串操作指令执行时遇到中断这种情况来回答)?
答:1.因为中断处理子程序运行时需要使用CPU内部的寄存器,这些寄存器的值发生了改
变。因此若不加保护在返回原程序时就修改了断点处的现场,而使程序不能正常运
行。
2.因为串操作指令允许在执行过程中进入中断,若与串操作有关的寄存器未保护好,
中断返回时串操作指令就不能正常继续运行。而且还有隐含寻址问题。
2.34 一个可屏蔽中断响应时,CPU要执行哪些读/写周期?对一个软件中断又如何?
答:1.对可屏蔽中断响应,CPU要执行的读/写周期如下:
① 执行两个中断响应总线周期。并取得中断类型码。
② 执行一个总线写周期。标志寄存器FR值入栈。
③ 执行一个总线写周期。CS值入栈。
④ 执行一个总线写周期。IP值入栈。
⑤ 执行一个总线读周期。读取中断处理子程序入口地址的偏移量→IP。
⑥ 执行一个总线读周期。读取中断处理子程序入口地址的段地址→CS。
2.若是一个软件中断,则跳过上述第①步,而执行②~⑥步。
2.35 中断处理子程序在结构上一般是怎样一种模式?
答:① 保护中断时的现场,即保护CPU各寄存器的值。
② 一般应置IF=1来开放中断,以允许级别较高的中断请求进入。
③ 中断处理的具体内容。
④ 恢复中断时的现场。
⑤ 中断返回指令。
2.36 软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么
不同之处?
答:1.软件中断有如下特点:
① 用一条中断指令进入中断处理子程序,并且,中断类型码由指令提供。
② 进入中断时,不需要执行中断响应总线周期。
③ 不受中断允许标志IF的影响。
④ 软件中断的优先级最高。

