1.硬件中断 硬件中断由外部硬件产生,8086CPU有两条外部中断请求 信号线:NM和ⅠNTR,分别接收非屏蔽中断和可屏蔽中断请 求信号。 2.软件中断 软件中断是CPU根据某条指令或者对标志寄存器的某个 志位的设置而产生的,由于它与外部电路无关,故也称为内部 中断。 在8086系统中,内部中断主要有以下几种: (1)除法出错中断 (2)|NTO溢出中断 (3)|NTn指令 (4)断点中断 (5)单步中断
1. 硬件中断 硬件中断由外部硬件产生,8086CPU有两条外部中断请求 信号线:NMI和INTR,分别接收非屏蔽中断和可屏蔽中断请 求信号。 2. 软件中断 软件中断是CPU根据某条指令或者对标志寄存器的某个标 志位的设置而产生的,由于它与外部电路无关,故也称为内部 中断。 在8086系统中,内部中断主要有以下几种: (1)除法出错中断 (2)INTO溢出中断 (3)INT n指令 (4)断点中断 (5)单步中断
概括来讲,软件中断具有以下几方面的特点 >中断由CPU内部引起,中断类型码的获得与外部无关,CPU 不需要执行中断响应周期去获得中断类型码,中断矢量号由 CPU自动提供。 除单步中断外,内部中断无法用软件禁止,不受中断允许标 志位的影响,即都不能通过执行CLI指令使IF位清零来禁止 对它们的响应 除单步中断外,任何内部中断的优先权都比外部中断高 8086CPU的中断优先权顺序为:内部中断(除法出错中断 INTn指令中断、INTO溢出中断、断点中断)、NMI中断、 INTR中断和单步中断。 内部中断没有随机性,这一点与调用子程序非常相似
概括来讲,软件中断具有以下几方面的特点: Ø 中断由CPU内部引起,中断类型码的获得与外部无关,CPU 不需要执行中断响应周期去获得中断类型码,中断矢量号由 CPU自动提供。 Ø 除单步中断外,内部中断无法用软件禁止,不受中断允许标 志位的影响,即都不能通过执行CLI指令使IF位清零来禁止 对它们的响应。 Ø 除单步中断外,任何内部中断的优先权都比外部中断高。 8086CPU的中断优先权顺序为:内部中断(除法出错中断、 INT n指令中断、INTO溢出中断、断点中断)、NMI中断、 INTR中断和单步中断。 Ø 内部中断没有随机性,这一点与调用子程序非常相似
7.22中断的响应过程 1.软件中断响应过程 对于专用中断,中断类型码是自动形成的,而对于|NTn指令, 其类型码即为指令中给定的n。在取得了类型码后的处理过 程如下: (1)把类型码乘4,作为中断向量表的指针; (2)把CPU的标志寄存器入栈,保护各个标志位; (3)清除和TF标志,屏蔽新的INTR中断和单步中断; (4)保存断点,即把断点处的|P和CS值压入堆栈,先压入CS 值,再压入IP值 (5)从中断向量表中取出中断服务程序的入口地址,分别送 至cS和|P中 (6)按新的地址指针执行中断服务程序
7.2.2 中断的响应过程 1. 软件中断响应过程 对于专用中断,中断类型码是自动形成的,而对于INT n指令, 其类型码即为指令中给定的n。在取得了类型码后的处理过 程如下: (1)把类型码乘4,作为中断向量表的指针; (2)把CPU的标志寄存器入栈,保护各个标志位; (3)清除IF和TF标志,屏蔽新的INTR中断和单步中断; (4)保存断点,即把断点处的IP和CS值压入堆栈,先压入CS 值,再压入IP值; (5)从中断向量表中取出中断服务程序的入口地址,分别送 至CS和IP中; (6)按新的地址指针执行中断服务程序
2.硬件中断响应过程 (1)非屏蔽中断响应:当CPU采样到非屏 蔽中断请求时,自动提供中断类型码2,然后根 据中断类型码査到中断向量表指针,其后的中 断处理过程与内部中断一样。 (2)可屏蔽中断响应:当ⅠNTR信号有效时, 如果中断允许标志IF=“1”,则CPU就会在当 前指令执行完毕后响应外部的中断请求,转入 中断响应周期
2. 硬件中断响应过程 (1)非屏蔽中断响应:当CPU采样到非屏 蔽中断请求时,自动提供中断类型码2,然后根 据中断类型码查到中断向量表指针,其后的中 断处理过程与内部中断一样。 (2)可屏蔽中断响应:当INTR信号有效时, 如果中断允许标志IF= “1” ,则CPU就会在当 前指令执行完毕后响应外部的中断请求,转入 中断响应周期