实模式和保护模式的中断机制还是有一定差别的,我们分别来看一下: 实模式下的中断操作和8086的中断操作是相同的。就是在内存的第0段设置一个如前所述的中断向量表,中断响应时,根据中断类型号从中断向量表获得中断处理子程序的入口地址,然后进入中断处理子程序,完成相应处理。这样的方式就是实模式。 出现一个中断申请的时候,微处理器执行完当前指令,就按照以下顺序判断中断是否有效:(1)是否INT指令引起中断;(2)是否来自检测电路的NMI引起的中断;(3)是否由于协处理器段超限引起中断;(4)是否有外设用INTR向CPU申请中断;(5)调试或者其他特殊过程需要单步中断。如果一个或多个中断请求出现,则进行如下操作: (1)标志寄存器的内容压入堆栈;堆栈是一块内存区域,类似于子弹弹夹,先压入的将后被读取出来,后压入的反而先被读取。 (2)清除中断标志(IF)和陷阱标志(TF);在中断响应周期禁止INTR中断和单步功能; (3)代码段寄存器(CS)的内容压入堆栈; (4)指令指针(IP)的内容压入堆栈;以上两步是保留中断返回后所要执行的指令的地址,便于处理完毕返回使用。 (5)中断向量的内容就是中断服务程序的入口地址。取出中断向量内容,送入IP和CS,使程序指针指向由中断向量寻址的中断服务程序; |