您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > ch07 微型计算机的中断系统
第七章微型计算机的中断系统7.1中断系统的基本概念7.1.1中断的基本概念所谓中断,是指CPU执行程序时,突然有某个外部或内部事件发生,请求CPU处理,CPU暂停当前正在执行的程序,转去执行处理该事件的服务程序,服务完毕后,CPU返回原来程序被中断的地方继续执行。这个过程称为中断。中断服务程序1中断服务程序2非预料事件1非预料事件2CPU执行流程断点断点1、基本概念中断源:引起中断发生的内部或外部事件中断类型号:每个中断源唯一的一个编号断点:该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。包括段地址和偏移地址。中断服务程序:处理中断事件的程序段2、中断系统的功能中断系统是指实现中断功能的软、硬件的集合。具有以下功能:能实现中断响应、中断服务及中断返回。能实现中断优先权排队。能实现中断嵌套。3、计算机系统的性能并行处理能力实现CPU和多个外设同时工作,提高CPU效率。实时处理能力计算机应用于实时控制时,对外部事件及时响应故障处理能力及时处理故障,不影响其他程序的运行。多任务运行在操作系统的调度下,运行多个任务,任务间交替运行(1)中断请求:中断源发出中断请求信号(2)中断判优:对申请中断的中断源进行优先级判别的过程称为中断判优。(3)中断响应:从请求有效到转中断服务程序入口地址这一段时间。实现程序的切换。(4)中断服务(处理):中断程序的主体。(5)中断返回:使原来在中断响应过程中的断点地址和标志寄存器中的内容,依次从堆栈中弹出,以便继续执行原来的程序。4、中断过程(1)中断请求可由内部标志或指令引起;也可由外部电路引起(2)中断判优有多个中断源同时提出中断请求时,CPU应按照中断源的轻重缓急按次序响应中断。先响应优先级高的请求,后响应优先级低的请求。软件查询优先权排队法执行程序按照顺序逐位查询中断请求寄存器的状态,查询的顺序决定了优先级的高低硬件优先权判别法菊花链法——将每个接口串连起来,离CPU近的优先级高“向量”优先权排队电路——由专用的中断控制器管理优先级(3)中断响应从CPU接收到中断请求,到转去执行中断服务程序之间的过程就是中断响应。CPU实现从当前正在执行的程序到中断服务程序的切换由硬件完成关中断、保存断点、取中断服务程序入口地址等一系列中断响应操作。(4)中断服务(处理)1.保护现场保护现场实质:将重要信息压入堆栈。2.开中断目的:开放所有可屏蔽中断,以允许高级中断嵌套3.执行中断服务程序中断服务程序主体-中断的目的。4.关中断目的:关中断以确保可靠有效地恢复现场。5.恢复现场恢复现场实质:将原来压入堆栈中的内容弹出来。7.28086CPU中断系统指令中断INTn异常中断包括:失效异常陷井异常中止异常内部异常中断微处理器中断逻辑INTRNMIIRQ0IRQ1IRQ2:IRQ15不可屏蔽中断可屏蔽中断外部中断控制器外部硬件中断7.2.18086中断的分类1、外部中断不可屏蔽中断(NMI):中断类型号为2号含义:不能用软件来控制是否允许中断的一种外部中断。常见NMI中断有:(1)电源掉电(2)存储器检验出错(3)总线奇偶错等。可屏蔽中断(INTR):含义:可用软件控制是否允许中断的外部中断。即STI使IF=1,允许中断;CLI使IF=0,禁止中断。常见INTR中断有:所有外部设备中断如键盘、鼠标、打印机、显示器、声卡、CD-ROM等。2、内部中断内部中断是由于8086内部执行程序出现异常引起的程序中断利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有效途径例如,ROM-BIOS和DOS系统利用内部中断为程序员提供了各种功能调用内部中断的中断类型号已定⑴除法错中断在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断例如:movbl,0idivbl;除数BL=0,产生除法错中断movax,200hmovbl,1divbl;商=200H,不能用AL表达;产生除法错中断⑵指令中断在执行中断调用指令INTn时产生的一个向量号为n(0~255)的内部中断,称为指令中断其中向量号为3的指令中断比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为断点中断例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT3指令实现的⑶溢出中断在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断例如:movax,2000haddax,7000h;2000H+7000H=9000H,溢出:OF=1into;因为OF=1,所以产生溢出中断⑷单步中断若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试3、中断优先级高至低顺序依次为:内部中断(除单步中断)NMI中断INTR中断单步中断。除单步中断外,任何内部中断的优先级都高于外部中断。7.2.2中断向量表含义:中断服务程序的入口地址(CS:IP)组成及格式:共4个字节,段地址及偏移地址。高地址段地址高字节段地址低字节低地址偏移地址高字节偏移地址低字节段地址偏移地址返回1、中断向量2、中断向量表含义:存放256个中断向量的内存区域。即存放中断服务程序入口地址的内存区域称为中断向量表。中断向量表大小:1KB中断向量表地址范围:00000H~003FFH。中断向量地址中断类型号n与其对应的中断向量存放起始地址之间的关系是:起始地址=4×n;末地址=4×n+3即中断向量在4×n~4×n+3指示的内存单元中。示例实方式下的中断服务程序入口地址求法(例子)【例】假设在实地址方式下,内存00140H到00147H中存放的数据如右图所示,求51H号中断的中断服务程序入口地址。解:(1)求中断向量存放的首地址和末地址由中断类型号51H可知中断向量存放的首地址=51H×4=144H(左移两位方法)末地址=51H×4+3=147H(2)从首末地址对应的4个单元找出中断向量,即00144H到00147H中内容就是51H号中断的中断向量对照中断向量组成及格式可知段地址=4540H,偏移地址=3430H,所以中断服务程序入口地址为段地址×16+偏移地址=45400H+3430H=48830H求解3、中断向量的设置方法(1)DOS功能调用(21H)保存中断向量AH=35HAL=中断类型号INT21H返回时送ES:BX=中断向量MOVAL,NMOVAH,35HINT21H;取原中断向量PUSHESPUSHBX保存原中断向量DOS功能调用(21H)设置中断向量AH=25HAL=中断类型号DS:DX=中断向量INT21HMOVAX,SEGINTRPROCMOVDS,AXMOVDX,OFFSETINTRPROCMOVAL,NMOVAH,25HINT21H3、中断向量的设置方法(1)通过传送类指令直接设置中断向量MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRPROCMOVES:[BX],AX;偏移地址(N*4)MOVAX,SEGINTRPROCMOVES:[BX+2],AX;段地址(N*4+2)……INTRPROC:……IRET3、中断向量的设置方法(2)7.2.38086对中断的响应CPU响应中断必须满足如下条件:(1)CPU接收到中断请求;(2)没有DMA请求;(3)当前指令执行结束,(4)如果是INTR中断请求,CPU还必须开中断,即中断标志IF=1。响应条件满足后,进入中断响应周期,中断响应操作由硬件自动完成。8086CPU对不同类型的中断响应过程稍有不同,主要是获取中断类型号的过程不同。可屏蔽中断的响应过程(1)处理器接到中断申请,处理完当前指令即进入响应周期。(2)第二阶段即中断响应周期,在其间CPU向外部中断控制器发送两个响应脉冲信号INTA。第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,CPU取走中断类型号。(3)将标志寄存器中的内容压入堆栈保护,然后清IF和TF标志,以禁止INTR引脚以及陷井和单步中断。(4)将断点地址压入堆栈(CS:EIP或CS:IP)。断点地址:指中断时CPU待执行的下一条指令对应的逻辑地址。顺序:先压入断点地址CS,后压入偏移地址EIP(或IP)。(5)CPU得到中断类型号码n后,通过中断类型号与中断服务程序入口地址的关系找出该类型对应的段基地址和偏移地址,从而转入中断服务程序入口地址。完成中断响应任务。7.3中断控制器8259A一、8259A主要功能:(1)8位可编程中断控制器,又称优先级控制器(2)处理8级向量优先级中断(3)可提供中断类型号(4)8259A芯片级联组成强大的中断管理系统(多至64级外部中断)。(5)优先级方式可编程(6)多级中断管理7.3.18259A的引脚信号与CPU相连的引脚D7~D0为8位双向的数据线A0:端口选择信号CS:片选信号RD和WR:读/写控制信号INTA:中断响应输入信号INT:中断请求输出信号与中断源相连的引脚IRi:8个中断源中断请求端级联扩展引脚CAS0~CAS2级联信号SP/EN:从片/缓冲允许控制(1)非缓冲时为输入:SP:1=主片,0=从片(2)缓冲时为输出:EN:1=CPU写,0=CPU读CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2123456789101112131428272625242322212019181716158259A7.3.28259A的内部结构中断请求寄存器IRR功能:记录外部中断源的中断申请的状态。状态:1=对应引脚有中断请求且还未被响应0=对应引脚无中断请求或有但已经被响应D7D6D5D4D3D2D1D0IRR7IRR6IRR5IRR4IRR3IRR2IRR1IRR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚中断优先权分辨器PR优先权分辨器PR用来确定存放在IRR中各个中断请求信号对应中断源的优先级。并总是选出当前最高优先中断源的中断申请通知控制逻辑,以便控制逻辑发送中断请求信号INT给CPU。中断服务寄存器ISR功能:记录外部中断源的中断申请被服务的状态。状态:1=对应引脚的中断请求已被响应(服务)且服务还没有结束。0=对应引脚的中断请求未被响应。D7D6D5D4D3D2D1D0ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚中断屏蔽寄存器IMR功能:设置外部中断源的中断屏蔽状态。状态:1=对应引脚的中断被屏蔽。0=对应引脚的中断未被屏蔽。注意:只有IMRi相应位为0且IF=1,CPU才有可能响应可屏蔽中断。D7D6D5D4D3D2D1D0IMR7IMR6IMR5IMR4IMR3IMR2IMR1IMR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚数据总线缓冲器数据总线缓冲器是一个三态、双向的8位缓冲器,是8259A与CPU系统数据总线的接口。数据总线缓冲器的主要功能有:(1)通过数据总线缓冲器,CPU向8259A内部发送命令。(2)CPU接收8259A状态信息。(3)在中断响应周期,CPU从中获得中断类型号。读/写逻辑接收CPU送来的读/写控制信号、片选信号以及地址选择信号,对内部各个寄存器进行读写操作。级联缓冲/比较器级联缓冲/比较器在级联方式的主从结构中(两个以上的8259A组成的系统),用来存放和比较系统中各8259A的从设备标志(ID)。控制逻辑控制逻辑是控制8259A内部各个部件的主要逻辑电路。主要功能包括:(1)根据CPU对8259A编程设定的工作方式
本文标题:ch07 微型计算机的中断系统
链接地址:https://www.777doc.com/doc-3342338 .html