中断处理包括一下几个步骤:
1、中断请求
8088/8086CPU的NMI为边沿触发,INTR为电平触发。在中断请求被响应之前会一直发送中断请求。
2、中断源识别
当系统同时有多个中断源发出的中断请求时,系统往往只能相应并处理一个中断,这就要求CPU对来到的中断请求进行判优,选择出同一时间优先级最高的给予响应和处理,
3、中断响应
中断响应时,CPU要向中断源发出中断响应信号,还要保护现场即将FLAGS压入堆栈,将下一条指令的CS压入堆栈,将下一条指令的IP压入堆栈。还要将终端的入口赋给IP和SP。
4、中断处理
保护软件现场(把中断服务子程序中要用到的寄存器的内容压入堆栈)、开中断(为了可以嵌套)、执行中断处理程序、关中断、恢复现场。
5、中断返回
利用IRET进行中断返回会将堆栈中保存的信息弹出到IP和CS和FLAGS中。