首页 理论教育 8086CPU的中断源-微机原理及接口技术

8086CPU的中断源-微机原理及接口技术

时间:2023-11-16 理论教育 版权反馈
【摘要】:8086 CPU的中断系统功能强大,结构简单而灵活,它可以处理多达256个不同的中断源的中断请求,中断源分类如图7-3所示。图7-38 086 CPU的中断源1.硬件中断硬件中断是通过外部的硬件产生的中断,如打印机、键盘等,因此也称为外部中断。可屏蔽中断可屏蔽中断的信号由8086 CPU上的INTR引脚引入,它受中断允许标志IF的影响。

8086CPU的中断源-微机原理及接口技术

8086 CPU的中断系统功能强大,结构简单而灵活,它可以处理多达256个不同的中断源的中断请求,中断源分类如图7-3所示。每一个中断源都规定了一个唯一的中断类型码与之对应,这些0~255的中断类型码也称为中断向量。256个中断源有的来自CPU内部,有的来自外围芯片;有时可用软件启动,有时可用硬件启动。一般将它们分为两大类:硬件中断和软件中断。

978-7-111-42233-4-Chapter07-3.jpg

图7-38 086 CPU的中断源

1.硬件中断

硬件中断是通过外部的硬件产生的中断,如打印机、键盘等,因此也称为外部中断。硬件中断又可分为两类:非屏蔽中断和可屏蔽中断。

(1)非屏蔽中断

非屏蔽中断(Non-Maskable Interrupt,NMI)的信号通过8086 CPU上的NMI引脚引入,它不受中断允许标志的影响。一般微型计算机系统中只允许有一个非屏蔽中断,用来处理紧急情况的,如掉电处理。这种中断一旦发生,处理完当前指令后CPU会立即响应。非屏蔽中断的优先权高于可屏蔽中断,CPU接收非屏蔽中断请求时,自动给出中断类型码2。

(2)可屏蔽中断

可屏蔽中断的信号由8086 CPU上的INTR引脚引入,它受中断允许标志IF的影响。只有当IF=1时,可屏蔽中断才能进入CPU,反之则不允许进入,可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。而IF标志位的状态,可以用指令STI置1,即开中断;也可以用CLI指令使其置0,即关中断。INTR引脚只能处理1个中断请求,这是远远无法满足开发需求的。8086微型计算机系统中一般采用可编程中断控制器8259A作为外部设备向CPU申请中断和CPU对中断进行各种控制的接口,通过可编程中断控制器可将原来只能响应1个可屏蔽中断的引脚INTR扩展成对8~64个中断源进行多个中断源的管理。

2.软件中断

软件中断也称为内部中断:即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,内部中断包括断点中断(INT 3)、指令中断(INT n)、溢出中断(INT 0或INT 4)、除法出错中断(INT 0)和单步中断(INT 1)。

(1)断点中断(INT 3)

断点中断是8086 CPU提供的一种调试程序的手段,用于设置程序的断点。INT 3指令是一条单字节指令,可以很方便地插入程序任何地方,插入的地方就是程序的断点。在断点处,停止正常的程序执行过程,进入断点中断服务程序,显示寄存器、存储单元等内容。

(2)指令中断(INT n)(www.xing528.com)

INT n指令中的n即中断类型码,主要用于系统功能调用或用户自己定义的软件中断。在8086中断系统的256个中断类型中除了00H~04H规定为专用中断外,把20H~0FFH的一些分配给DOS中断调用,其中40H~7FH留给用户,作为开发使用的中断类型号。DOS功能调用(INT 21H)使得用户可以方便地实现对磁盘文件的存取、内存空间的管理等操作。用户自己定义的中断则是用户利用保留的中断类型码来扩充自己需要的中断功能。

(3)溢出中断(INTO或INT 4)

溢出中断是一条特殊的指令中断,指令为INTO,中断类型码为4。若标志位OF=1,执行INTO指令,则产生溢出中断,中断结束时不返回原程序而把控制权交给操作系统。若OF=0则不产生中断,CPU继续执行程序。CPU进行带符号数的算术运算时,若发生了溢出则OF有影响,所以INTO指令通常安排在算术指令之后,以便溢出时能及时处理。

(4)除法出错中断(INT 0)

除法出错中断是由于执行除法指令(DIV和IDIV)时出现错误产生的中断。主要是由于在进行除法运算时被除数和除数的位数并不确定,而在8086中商的位数与除数的位数相同,若所得的商超过了目标寄存器所能够存储的数据范围,则产生中断,另外当除数为0时也同样产生中断。这种中断没有相应的指令,但也与外部硬件设备没有关系,通常将这种情况称为“自陷”中断。

(5)单步中断(INT 1)

若跟踪标志TF=1,则每执行一条指令后进入中断类型码为1的中断。若跟踪标志TF=0,则CPU按正常方式连续执行指令。单步中断为程序的调试提供了方便,用户可通过单步执行指令跟踪程序的执行,从而帮助用户判断、检查程序是否正确,是否需要修改。与断点中断相比,单步执行方式是较小规模的程序调试,断点中断适用较长程序中某一程序段的调试。

另外,软件中断具有以下特点:

①软件中断的中断类型码固定,或通过中断指令给定,不需要进入相应的总线周期获取中断类型码,这与非屏蔽中断NMI的中断处理过程相同。

②不受中断允许标志IF的影响。

③软件中断是通过一条指令或某个标志位进入中断程序的,这样的中断并不是随机产生的。与硬件设备的中断请求相比,这样的中断是事先决定了的,并不是完全随机不可预测的。从这个角度上看,软件中断过程更类似于子程序的工作过程,特别是指令中断(INT n)与段间过程调用指令(CALL)非常类似。因此,人们通常将较大型的子程序设计为中断处理程序,再在程序中通过软件中断调用它们。

3.中断源的优先级

多个中断源同时发出中断请求时,CPU首先响应优先级最高的中断源。8086中断源的优先级从高到低是:除法出错中断、指令中断、溢出中断、非屏蔽中断、可屏蔽中断、单步中断。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈