资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,微机原理与接口技术,第,7,章 中断系统,2,主要内容,7.1,中断系统概述,7.2 8086CPU,的中断系统,7.3,可编程中断控制器,8259A,7.4,小结,7.1 中断系统概述,7.1.1,中断的基本概念,什么是中断,?,与生活场景的比较,正在看书,电话铃响,接电话,继续看书,执行程序,事件发生,事件处理,继续执行程序,中断处理,中断请求及响应,实际场景,计算机,中断返回,1.中断的定义,什么是中断?,让,CPU,挂起当前正在执行的程序,转去执行处理某一事件的操作。,什么是中断过程?,CPU,暂停执行原来的程序,转去执行处理特定事件的服务程序,处理结束之后,又返回到原来的程序,从断点开始继续往下执行的全过程。,中断过程示意图,7-1,指令,指令,指令,指令,指令,指令,指令,指令,有中断请求,指令,指令,指令,指令,返回,中断服务子程序,1,指令,指令,指令,指令,返回,中断服务子程序,2,有中断请求,中断嵌套,2.中断源,引起,CPU,中断的事件,中断源。例如:,外设,请求输入输出数据,报告故障等,事件,掉电、硬件故障、软件错误、非法操作、定时时间到等,中断源分为:外部中断、内部中断,内部中断:,CPU,内部执行程序时自身产生的中断,外部中断:,CPU,以外的设备、部件产生的中断,7,3.中断服务程序,为完成中断源所期望的功能而编写的程序称为中断服务程序。,每一个中断都对应一个中断服务程序,计算机运行时,中断服务程序驻留在内存。,中断服务程序的第一条指令所在的地址,(,即入口地址,),称为该中断服务程序的,中断向量,。,要调用中断服务程序,只需要将程序执行跳转到相应的中断服务程序的入口地址。,8,4.中断类型号,中断类型号为了区别不同的中断服务程序,分配给每个中断服务程序的唯一编号。,用户调用中断服务程序时,只要给出对应的中断类型号,计算机即可自动查表获得中断向量。,在8086/8088CPU中,中断系统能处理256种不同类型的中断。其中断类型号为00HFFH。,9,5.中断优先权,系统中存在多个中断源,,CPU,必须设法找出发出中断请求的中断源,中断识别,当出现多个中断源同时需要,CPU,处理的时候,,CPU,应该先响应谁?,中断判优,这种响应中断的顺序,即各种中断源的优先权顺序。,10,7.1.2,中断处理系统,一个中断处理系统需要具备的功能有:,实现中断及返回,实现优先权排队,多个中断源同时提出中断请求时,能找到优先权级别最高的中断源进行响应,处理完后,响应级别较低的中断源。,实现中断嵌套,当正在处理某个中断时,若有更高优先权的中断源发出中断请求,则,CPU,中断该中断服务程序,响应更高级的中断,待执行完后,再返回执行被中断的中断服务程序。,中断嵌套,主程序,中断,高级中断,中断嵌套示意图,主程序,中断源,5,处理程序,中断源,3,请求,中断源,1,请求,返回,返回,返回,中断源,5,请求,(假设中断源,1,n,的优先级为从高到低,),中断源,3,处理程序,中断源,1,处理程序,13,7.1.3,中断控制方式的优点,并行处理能力,实现了,CPU,和多个外部设备同步工作,实时处理能力,中断系统能处理实时要求,故障处理能力,CPU,出现意想不到的情况或故障,可以利用中断系统自动处理,而不用关机。,7.2 8086,的中断系统,与中断有关的控制线为:,NMI,、,INTR,、,INTA#,8086,系统的中断源,内部中断,除法溢出:类型号,0,,商大于目的操作数所能表达的范围时产生。,单步中断:类型号,1,,,TF=1,时产生,断点中断:类型号,3,,这是一个软中断,溢出中断:类型号,4,,软中断即,INTO,指令。,软件中断:即,INT n,指令,类型号,n(0-255),。,外部中断,非屏蔽中断,NMI,:类型号,2,,不可用软件屏蔽,,CPU,必须响应它。,可屏蔽中断,INTR,:类型号由,PIC,提供。,IF=1,时,CPU,才能响应。,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控,制器,8259A,PIC,8086/8088CPU,内部逻辑,断点中断,8086/8088,中断源类型,可,屏,蔽,中,断,请,求,n,4,3,0,1,2,中断源的识别,8086,系统采用中断类型码来识别不同的中断源,,每个中断源都有一个与它相对应的中断类型码,。,溢出、断点、除法溢出、单步、非屏蔽中断的类型码为,固定值,软件中断的类型码,由指令给出,可屏蔽中断的类型码,由,PIC,给出,17,1.内部中断,CPU,中断:,CPU,执行某些指令时出现错误或对标志寄存器的标志位进行设置而引发的中断。,除法错中断中断类型号为,0,单步执行中断中断类型号为,1,断点中断中断类型号为,3,溢出中断中断类型号为,4,INTO,:当,CPU,检测到溢出标志,OF,为,1,,且当前指令是,INTO,指令时,则立即引起溢出中断。,INT 4,:如果直接执行软件中断指令,INT 4,,无论,OF,标志位如何,,CPU,都将会调用,4,型服务程序。,18,1.内部中断,软中断,CPU,执行在用户程序中安排的有定义的,INT n,指令而引发的中断。,软中断的中断类型号是在指令中直接给出的。软中断是在程序中安排而不是随机的。,在,PC,系列机器中,软件中断主要分为:,BIOS,中断,DOS,中断,19,2.外部中断(硬中断),硬中断是由来自CPU外部事件产生的中断,即由外部设备提出中断请求而产生的。硬中断的产生具有随机性,何时产生中断,CPU预先并不知道。,在PC/AT系统中,硬中断由两片8259A中断控制器引入。,PC/AT,系统硬件中断表,中断类型号,IRQ,标准应用,02H,08H,09H,0AH,70H,71H,72H,73H,74H,75H,76H,77H,0BH,0CH,0DH,0EH,0FH,NMI,0,1,2,8,9,10,11,12,13,14,15,3,4,5,6,7,奇偶校验错、,I/O,检测错中断,定时器,OUT,0,中断,键盘输入中断,接收从片,8259A,的中断请求,INT,实时钟中断,改向,INT 0AH(,以,IRQ2,出现,),保留,保留,保留,协处理器中断,硬磁盘控制器中断,保留,串行通信,(COM,2,),中断,串行通信,(COM,1,),中断,打印机,(LPT,2,),中断,软磁盘控制器中断,打印机,(LPT,1,),中断,21,2.外部中断(硬中断),1),非屏蔽中断,(,边缘触发,),非屏蔽中断,NMI,:,不受中断允许标志,IF,的影响,它总是被,CPU,接受的。,非屏蔽中断的优先权高于可屏蔽中断,中端类型号为,2,。,2),可屏蔽中断,(,电平触发的,),可屏蔽中断,INTR,:,是否响应,INTR,的请求,取决于中断允许标志位,IF,的状态。,只有当中断允许标志位,IF,为,1,时,,CPU,才能响应,INTR,的中断请求。,如果,IF,为,0,,即使,INTR,端有中断请求信号,CPU,也不会响应。这种情况称为中断屏蔽。,22,3.,中断向量表,中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。,中断向量表是在内存中,00000,到,00400h,开辟的一个区域,将每个中断服务程序的入口地址存放其中。共,1KB,,可以存放,256,个中断向量。,查表方法:,中断号*,4=,中断向量表地址,低,16,位,偏移量,高,16,位,代码段地址,例:,INT 13H,入口地址,CS:IP=0210:045D,5D,04,10,02,IP,CS,0000:004C,类型,0,中断入口,(,除法出错,),类型,1,中断入口,(,单步中断,),类型,2,中断入口,(,NMI,),类型,3,中断入口,(,断点中断,),类型,4,中断入口,(,溢出中断,),类型,5,中断入口,类型,3,1,中断入口,类型,3,2,中断入口,类型,255,中断入口,15,8,7,0,000,004,008,00C,010,014,07F,080,3FC,供,用,户,使,用,系,统,备,用,专,用,中,断,IP,CS,IP,CS,IP,CS,图,8086,中断向量表,中断向量表的初始化,初始化,将中断服务程序的入口地址放入向量表,例:中断类型码为48,H,的中断处理子程序的名字为,int48h,,编写程序段将该中断处理子程序的入口地址放入向量表。,中断向量表的初始化,CLI,MOV AX,0,MOV DS,AX,MOV SI,48H*4,MOV AX,OFFSET int48h,MOV SI,AX,MOV AX,SEG int48h,MOV SI+2,AX,STI,26,4.,中断响应条件,向,CPU,发出中断请求,CPU,处于开中断状态。即,IF,标志为,1,。,CPU,复位时,自动关中断,当,CPU,响应任何中断时,也立即自动关中断。在中断服务程序中用开中断指令,STI,开中断。,CPU,在一条现行指令结束之后响应中断。,5.中断处理过程,一个中断处理过程应该包含以下五个过程:,(1),中断请求,(2),中断排队,(3),中断响应,(4),中断服务,(5),中断返回,1)中断请求,外设接口(中断源)发出中断请求信号,送到,CPU,的,INTR,或,NMI,引脚;,中断请求信号:边沿请求,电平请求,例如,,NMI,为边沿请求,,INTR,为电平请求,中断请求信号应保持到中断被处理为止;,CPU,响应中断后,中断请求信号应及时撤销。,在,8086/8088,系统中,外设的中断要经过,8259A,可编程中断控制器,(PIC),的排队判优后向,CPU,发出:,(I/O,接口,),8259A CPU,(,INTR,),2)中断排队,中断源识别,中断源有很多,,CPU,必须识别是哪一个设备产生中断。识别中断源有两个方法:,软件查询。将中断信号从数据总线读入,用程序进行判别。,中断矢量法。由中断源提供中断类型号,,CPU,根据类型确定中断源。(,8086/8088,即采用此种方法),2)中断排队,中断判优,确定当前所有中断请求中优先级最高的中断源。,因为,CPU,一次只能响应一个中断,所以必须首先处理最紧急最重要的中断。,根据中断源的轻重缓急给予一个中断优先权级别,优先权级别最高的中断源将首先得到响应。,中断优先级的控制方法,硬件判优,链式判优、并行判优(中断向量法),软件判优,顺序查询中断请求,先查询的先服务(即先查询的优先级别高),x86,系统中,这项任务由,8259A,和,CPU,共同完成。,3)中断响应,CPU,通过中断排队确定了要响应的中断源后,进入中断响应,自动完成以下步骤:,标志寄存器入栈,关中断;,0,IF,保护断点,将正要执行的程序地址,(CS:IP),入栈;,形成中断服务程序入口地址。,3)中断响应(续),CPU,中断响应时,要做下述三项工作:,向中断源发出,INTA,中断响应信号;,断点保护,包括,FLAGS,和,CS,、,IP,。这主要是保证中断结束后能返回被中断的程序。,获得中断服务程序首地址(入口)。,中断类型码*,4=IP,中断类型码*,4+2=CS,33,8086硬件中断的时序,8086,从,INTA,发出中断响应信号;,第一个总线周期用来通知外设,,CPU,准备响应中断,第二个总线周期接收外设发回的中断类型码,该类型码必须通过,16,位数据总线的低,8,位传送。,4)中断处理(中断服务),中断服务是指,CPU,执行中断服务程序。,中断服务程序应包括:,保护现场,,CPU,响应中断时自动保护断点,寄存器则由程序员决定是否要入栈;,开中断,,CPU,响应中断时,自动执行关中断操作。要实现中断嵌套,必须在中断服务程序中开中断;,4)中断处理(中断服务),中断处理,对中断源作相应的处理,是中断服务程序的核心;,关中断,若中断服务程序设置了开中断,则此时应该
展开阅读全文