中断服务
•中断服务就是指执行中断服务程序,包括三个部分:保护现场、中断处理和恢复现场。
•保护现场是进入中断服务程序后首先要做的工作。主程序中要用到寄存器,中断服务程序中也要用到寄存器,而CPU中的寄存器又是有限的,所以保护现场的目的就是将有关的寄存器内容压入堆栈保存起来。所谓有关的寄存器 是指中断服务程序中使用的那些寄存器,将这些寄存器的内容保存起来,也就保存了主程序断点处的工作环境,以后即使改变了这些寄存器的内容也没关系,因为断点处的工作环境已经被保存下来,随时都可以恢复。保护现场一般使用PUSH指令。
•中断处理是中断服务程序中的核心工作。它实质性地完成CPU与外设之间的输入或输出操作,有时也包括内存地址的修改,计数值的修改等等。
•恢复现场的目的就是恢复主程序断点处的工作环境,这个环境是在保护现场工作中保存起来的,一般使用POP指令来完成。
中断返回
•中断返回是中断过程的最后一个环节,它是由中断返回指令(IRET)来实现的,其目的在于将断点地址返回到程序计数器,由于计算机总是按照程序计数器的地址取指令执行程序,所以CPU自然从断点地址开始继续执行原程 序。
•需要说明的一点是,CPU在响应中断时已经在其内部自动实现了关中断(禁止中断),其目的是在中断响应过程中,保护断点,转入中断服务程序等工作不受其它中断源的干扰,但由于关了中断,使得在整个中断服务过程中不能再响应其他的中断,也就是不能实现中断嵌套。而如果不在中断服务程序返回之前,或在主程序循环体中重新开中断的话,那么系统就不可能再响应 任何可屏蔽的中断请求。显然,为了实现中断嵌套,一定要在中断服务程序 中开始的部分安排开中断指令;为了实现连续的中断,最好在中断返回指令之前安排一个开中断指令。
8088的中断系统
•8088具有强大的中断处理功能,它可以处理256种不同类型的中断,类型号为0~255。
图2.3.1 8088中断源