微机原理-第5版(周荷琴)-第八章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第8章中断和8259A中国科学技术大学8.1中断第8章中断和8259A中国科学技术大学8.1中断本章主要内容:§8.1中断§8.28259A的工作原理§8.38259A应用举例第8章中断和8259A中国科学技术大学8.1中断§8.1中断8.1.1中断概念和分类8.1.2中断的响应与处理过程第8章中断和8259A中国科学技术大学8.1中断8.1.1中断概念和分类1.中断的定义和功能中断定义:计算机在执行正常程序过程中,暂时中止当前程序的运行,转到中断处理程序去处理临时发生的事件,处理完后又恢复原来程序的运行,这个过程称为中断(Interrupt)。第8章中断和8259A中国科学技术大学8.1中断中断功能:使CPU和外设在部分时间内并行工作,大大提高CPU的利用率;在实时控制系统中,现场数据可及时接收处理,避免丢失;故障的处理,如电源掉电、奇偶校验错、运算中溢出错等;利用中断指令,直接调用大量系统已编写好的中断服务程序,实现对硬件的控制。1.中断的定义和功能第8章中断和8259A中国科学技术大学8.1中断2.中断源和中断分类引起中断的原因或能发出中断请求的来源称为中断源。8086有两种中断源,中断分为两大类:1)外部中断或硬件中断,从不可屏蔽中断引脚NMI和可屏蔽中断引脚INTR引入;2)内部中断或软件中断,是为解决CPU运行过程中出现的一些意外事件或便于程序调试而设置的。第8章中断和8259A中国科学技术大学8.1中断图8.1IBMPC机中8086的中断分类和中断源2.中断源和中断分类第8章中断和8259A中国科学技术大学8.1中断1)外部中断不可屏蔽中断NMI,处理较紧急的情况,如存储器或I/O校验错、掉电、协处理器异常中断请求等,不受中断标志IF的影响。可屏蔽中断由8259A的INT引脚输出,连到CPU的INTR上。只有当CPU的FLAGS的IF=1时,才允许响应此类中断请求。8259A的输入引脚IR0~IR7可引入8级中断:时钟、键盘、串行通信口COM1和COM2、硬盘、软盘、打印机。经芯片内部判别后,将优先级高的中断请求信号送到INT引脚。2.中断源和中断分类第8章中断和8259A中国科学技术大学8.1中断2.中断源和中断分类2)内部中断(1)除法错中断执行除法运算指令时,如除数为0或商超过了结果寄存器能容纳的范围,则产生除法错中断。(2)单步中断单步标志TF置1,指令执行完后,产生单步中断。结果是将CPU的内部寄存器和有关存储器的内容显示出来,便于跟踪程序的执行过程,实现动态排错。第8章中断和8259A中国科学技术大学8.1中断2.中断源和中断分类8086没有直接使TF标志置1或清0的指令,如何使TF标志置1或清0?使TF标志置1的程序段:PUSHF;标志寄存器FLAGS入栈POPAX;AX←FLAGS内容ORAX,0100H;使AX(即标志寄存器)的;D8=1,其余位不变PUSHAX;AX入栈POPF;FLAGS寄存器←AX用类似方法将标志寄存器与FEFFH相与,可使TF标志清0,从而禁止单步中断。第8章中断和8259A中国科学技术大学8.1中断2.中断源和中断分类(3)溢出中断溢出标志=1,则可由溢出中断指令INTO产生中断类型号为4的溢出中断。若OF=0,不会产生中断。带符号数加、减指令后应安排一条INTO指令,一旦溢出就能及时向CPU提出中断请求,CPU响应中断后可进行相应的处理。第8章中断和8259A中国科学技术大学8.1中断2.中断源和中断分类(4)软件中断指令INTn中断类型号n=0~255。它可以安排在程序的任何位置上。(5)断点中断程序运行到断点时便产生中断,像单步中断一样,查看各寄存器和有关存储单元的内容。断点可设在程序任何地方并可以设多个断点,设置的方法是插入一条INT3指令。利用断点中断可以调试一段程序,比单步中断的调试速度快得多。第8章中断和8259A中国科学技术大学8.1中断3.中断向量表1)中断响应和返回CPU响应中断时,首先要把CS、IP寄存器的值(断点)以及标志寄存器FLAGS的值推入堆栈保护。然后找到中断服务程序的入口地址,转去执行相应的中断服务程序。中断服务程序结束时,执行中断返回指令IRET返回正常程序继续执行。如何寻找中断服务程序的入口地址,是中断处理过程中的一个重要环节。第8章中断和8259A中国科学技术大学8.1中断3.中断向量表2)中断向量表中断向量表用来存放中断服务程序的入口地址。8086可处理256(0~FFH)类中断,每类中断有一个入口地址(中断向量),包含CS和IP,共4个字节。因此存储256个地址,需要占用1K字节,它们位于内存00000~003FFH的区域中。将中断类型号n乘以4就能找到规定类型的中断向量,规定IP在前,CS在后。类型号为0~4的专用中断:0-除法错中断、1-单步中断、2-不可屏蔽(NMI)中断、3-断点中断和4-溢出中断,它们的中断向量分别存放在00H、04H、08H、0CH和10H开始的4个连续单元中。第8章中断和8259A中国科学技术大学8.1中断3.中断向量表例如,对n=2的NMI中断,其中断服务程序的入口地址放在00008~0000BH单元中,入口地址的CS存放在0000AH开始的字单元中,IP存放在00008H开始的字单元中。?在PC机中,在8259A的中断输入端IR0~IR7引入的中断类型号为08~0FH,如何求它们的中断服务程序入口地址?存放在中断向量表中的什么位置上?第8章中断和8259A中国科学技术大学8.1中断3.中断向量表第8章中断和8259A中国科学技术大学8.1中断3.中断向量表举例说明中断类型号n与中断向量表的关系。例8.1类型号n=44H的中断服务程序的入口地址为3600:2000H,它们在中断向量表中应如何存放?中断类型号n=44H=01000100B它的中断服务程序的入口地址应放在44H4开始的4个字节单元中,乘4操作只要将类型号n左移2位,右边补2个0即可。44H4=0100010000B=0110H从0110H开始存放3600:2000H如图8.3第8章中断和8259A中国科学技术大学8.1中断3.中断向量表例8.2若在中断向量表中,(0040H)=240BH,而(0042H)=D169H,如图8.4所示,试问这4个单元中的内容对应的中断类型号n=?该中断服务程序的起始地址是什么?中断服务程序的入口地址从0040H单元开始存放,其类型号n=40H/4=10H(右移2位)由图可知,中断类型号为10H的中断服务程序的入口地址=D169:240BH。第8章中断和8259A中国科学技术大学8.1中断4.中断优先级和中断嵌套1)中断优先级按中断源的重要性和实时性,排出响应中断的次序,这种次序称为中断优先级。在8086中,中断优先级从高到低的次序为:―除法错、INTn、INTO;最高级,同一行的;有同等优先级―NMI;次高级―INTR;较低级(由8259A引入)―单步中断;最低级第8章中断和8259A中国科学技术大学8.1中断4.中断优先级和中断嵌套2)中断嵌套CPU响应中断时,一般先响应优先级高的,后响应优先级低的中断请求。如CPU正在执行中断服务程序时,有优先级较高的中断源提出请求,则将正在处理的中断暂时挂起,先为高级中断服务,服务完后再返回较低级中断,称为中断嵌套。第8章中断和8259A中国科学技术大学8.1中断4.中断优先级和中断嵌套如何实现中断嵌套?机器进入中断服务程序后,硬件会自动关中断。只有用STI指令将中断打开后,才允许高级中断进入,实现中断嵌套。中断服程序结束前,必须用EOI命令结束该级中断,并用IRET指令返回到中断前的断点处去继续执行原程序。第8章中断和8259A中国科学技术大学8.1中断4.中断优先级和中断嵌套可屏蔽中断从8259A的8个输入端引入,一般情况下,优先级从高到低排列的次序为IR0~IR7。中断嵌套的示意图如图所示,说明见下页。第8章中断和8259A中国科学技术大学8.1中断4.中断优先级和中断嵌套图中的中断嵌套情况的执行过程:主程序运行中,IR2、IR4同时提出中断请求。IR2优先级高,先为IR2服务。在IR2的服务程序中,要用STI指令开中断,允许更高级中断进入。第8章中断和8259A中国科学技术大学8.1中断IR2服务时,IR1提出请求,IR2被挂起,为IR1服务。IR1结束前用EOI指令清除IR1的服务寄存器,结束IR1中断,并用IRET指令返回IR2服务程序,继续运行。运行至EOI命令时结束IR2的服务,响应IR4的中断。第8章中断和8259A中国科学技术大学8.1中断IR4结束后,由IRET指令返回IR2服务程序,最后从IR2返回主程序。这样就完成了多重嵌套中断程序的执行过程。在中断服务程序中,如不安排开中断指令STI,则高级中断不能打断低级中断,也就不能实现中断的嵌套。第8章中断和8259A中国科学技术大学8.1中断§8.1中断8.1.1中断概念和分类8.1.2中断的响应与处理过程第8章中断和8259A中国科学技术大学8.1中断8.1.2中断的响应与处理过程1.中断响应过程如图,可屏蔽中断的响应和处理流程。每条指令执行完,CPU都要查NMI和INTR脚上是否有中断请求,若无,继续取下一条指令执行。如有则响应中断,硬件自动完成关闭中断和保护断点操作,将下条要执行指令的CS和IP(即断点)推入堆栈;然后寻找中断服务程序的入口地址,找到后就转入相应的中断服务程序。恢复现场,开中断,返回断点。第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理图8.7:8086的中断响应与处理的流程中断响应和请求流程分为:中断查询、中断响应、中断处理和返回三个部分。第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理1)中断查询CPU在执行完每条指令后,会顺序检查是否有软中断、NMI、INTR和单步中断,如有,则进入中断响应周期。2)中断响应根据不同的中断源形成不同的中断类型码n,再在中断向量表中,根据n找到各自的中断服务程序的入口地址,转入相应的中断处理程序。例如n=2,则形成中断类型码2,再在中断向量表中找到n4=24=8开始的连续4个字节单元,从中取出CS:IP,转去执行可屏蔽中断。第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理重点介绍从INTR引脚引入的可屏蔽中断的类型码是如何形成的。CPU响应INTR中断后,要执行两个连续的中断响应INTA总线周期,其时序图如图8.8第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理第一个周期,CPU使数据线D7~D0浮空,T2~T4期间向8259A发第1个中断响应信号表示CPU已响应此中断,禁止其它总线控制器竞争总线。INTAINTA第8章中断和8259A中国科学技术大学8.1中断第二个周期,8259A收到第二个信号后,将中断类型号n置于数据总线上,由此找到中断服务程序的入口地址。INTAINTA第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理从8259A的IR7~IR0上可引入8级中断,形成8个8位中断类型码,其中高5位D7~D3由用户通过对8259A编程来确定,在PC/XT机中为00001,低3位D2~D0由IR7~IR0的序号来决定,见表8.1。高5位确定后,8级中断类型码就确定了。第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理3)中断处理和返回(1)由硬件自动完成以下工作FLAGS的内容入栈;保护单步标志TF;清IF标志,关中断,中断处理过程中禁止其它中断进入;清TF标志,使CPU不会以单步形式执行中断处理程序;保护断点,CS:IP入栈。第8章中断和8259A中国科学技术大学8.1中断2.8086的中断响应与处理(2)

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功