第6章中断技术

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

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

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

资源描述

1/32中断技术第6章26.1中断概述中断,是CPU在执行当前程序的过程中,由于某种随机出现的外围设备的请求,使得CPU暂时停止正在执行的程序,转去执行为外围设备服务的程序,当为外围设备服务的程序执行完后,CPU再返回到原暂时停止的程序处(即断点)继续执行的这一过程。中断示意图中断的基本概念3凡是能发出中断请求的外部设备及内部原因(包括软件中断和异常故障)被称为中断源。常见的中断源有:外设中断:系统外设要求与CPU交换信息而产生的中断。如打印机、磁盘等。指令中断:为方便用户使用系统资源或调试程序而设置的中断指令。程序中断:程序在运行过程中出现的多种错误而产生的中断。如溢出中断、非法除数中断、地址越界中断、非法操作码中断等。故障中断:机器在运行过程中,硬件出现错误而引起的中断。如校验错、电源故障等。6.1中断概述中断源4CPU响应中断的条件:设置中断请求触发器(发出中断)设置中断屏蔽触发器(屏蔽中断)设置中断允许触发器(允许中断)CPU在现行指令结束后响应中断具有中断屏蔽功能的接口电路示例6.1中断概述中断响应与中断处理5中断响应与中断处理过程:关中断保护断点识别中断源保护现场中断服务恢复现场开中断与返回6.1中断概述中断响应与中断处理6中断优先级(Priority),又称优先权,即在多个中断源同时请求中断时,确定服务的次序。解决中断的优先级的方法常有以下几种:软件查询确定中断优先级(原理图)硬件查询确定优先级(链式优先级排队原理图)中断优先级编码电路(由编码器和比较器构成的优先级排队电路原理图)6.1中断概述中断优先级与中断嵌套7中断嵌套,或称多重中断,即当CPU执行优先级较低的中断服务程序时,允许响应比它优先级高的中断源请求中断,而挂起正在处理的中断。多个中断源、单一中断请求线的多重中断流程6.1中断概述中断优先级与中断嵌套8可屏蔽中断INTR8086/8088的中断时序不可屏蔽中断NMI(中断类型码固定为2),用于通知CPU发生了“灾难性”的事件,如电源掉电、存储器读写错误、总线奇偶位出错等。软件中断(内部)硬件中断(外部)INTn指令中断逻辑断点中断溢出中断单步中断除数为0中断(3)(4)(1)(0)非屏蔽中断请求(2)中断控制器8259A可屏蔽中断请求NMIINTRINTOINT3OF=1TF=16.28086的中断系统外部中断9溢出中断(4号中断)除法出错中断(0号中断)INTn指令中断断点中断(3号中断)单步(陷阱)中断(1号中断)6.28086的中断系统内部中断软件中断(内部)硬件中断(外部)INTn指令中断逻辑断点中断溢出中断单步中断除数为0中断(3)(4)(1)(0)非屏蔽中断请求(2)中断控制器8259A可屏蔽中断请求NMIINTRINTOINT3OF=1TF=110中断向量:是中断服务程序的入口地址,包括中断服务程序的段基址CS和偏移地址IP(共占4个字节)。中断向量表:是存放中断向量的表格,它存放在存储器的最低端,共1KB,存放256个中断向量。向量地址:是在中断向量表中,每个中断向量在存储空间上的最低地址,是将中断类型码乘4以获取。8086/8088的中断向量表结构6.28086的中断系统中断向量与中断向量表11(1)保护断点。即把当前标志寄存器PSW、代码段寄存器CS和指令指针寄存器IP的内容压入堆栈:(SP)←(SP)-2((SP)+1,(SP))←(PSW)(SP)←(SP)-2((SP)+1,(SP))←(CS)(SP)←(SP)-2((SP)+1,(SP))←(IP)6.28086的中断系统中断控制转入操作12(2)清除IF和TF,即IF←0,TF←0,以便禁止其它可屏蔽中断和单步中断(3)获取中断向量。将中断类型码乘以4获得向量地址,根据向量地址查找中断向量表后,将对应的中断向量放入CS和IP,从而将控制转入中断服务程序:(IP)←[0000H:4×N](CS)←[0000H:4×N+2]6.28086的中断系统中断控制转入操作13在中断服务程序执行完后,最后要执行一条中断返回指令IRET,将原压入堆栈的标志和断点重又弹回原处:(IP)←((SP)+1,(SP))(SP)←(SP)+2(CS)←((SP)+1,(SP))(SP)←(SP)+2(PSW)←((SP)+1,(SP))(SP)←(SP)+26.28086的中断系统中断返回操作14【例】某外设中断类型号为13H,它的中断服务程序的入口地址为0070H:0FC9H,求其向量地址并具体描述中断向量的各字节在存储器中的存储情况。【解】由13H×4=4CH,可得中断类型号为13H的向量地址为0000H:004CH,该中断向量在向量表中的具体存储情况如下:(0000H:004CH)=C9H(0000H:004DH)=0FH(0000H:004EH)=70H(0000H:004FH)=00H6.28086的中断系统15INTER1PROCFARPUSHAX;保护现场PUSHBX……;中断服务程序STI;开中断,以便允许多重中断……;继续执行中断服务程序(发中断结束命令);中断控制器8259A所要求的POPBX;恢复现场POPAXIRET;中断返回INTER1ENDP6.28086的中断系统中断服务程序格式16中断向量并非常驻内存,而是开机上电时,由程序装入内存指定的中断向量表中。系统配置和使用的中断所对应的中断向量由系统软件负责装入,而用户编写的中断,其中断向量则要由用户自行装入。【例】某外设的中断服务程序为INTER1,其中断类型号为N,试编写一程序将该外设的中断向量装入到中断向量表中。(程序示例)6.28086的中断系统中断向量的装入17/32thanks!6.1,6.2,6.5,6.9,6.10课后作业181920212223242526272829Type225CSIP:CSType32IPCSType31IP:CSType5IPCSType4IPCSType3IPIPIPIPCSCSCSType8Type1Type0:224保留27个用户定义个8086专用5个03FFH03FCH0083H0080H007FH007CH0014H0013H0010H000FH000CH000FH0008H0007H0004H0003H0000H溢出中断断点中断非屏蔽中断单步中断除数为030方法一:MOVAX,0;中断向量表的段基址MOVES,AXMOVDI,N*4;向量地址送DI;中断向量装入中断向量表中MOVAX,OFFSETINTER1CLDSTOSWMOVAX,SEGINTER1STOSW某外设的中断服务程序为INTER1,其中断类型号为N,试编写一程序将该外设的中断向量装入到中断向量表中。31方法二:MOVAX,0;中断向量表的段基址MOVES,AXMOVBX,N*4;向量地址送BX;中断向量装入中断向量表中MOVAX,OFFSETINTER1MOVES:[BX],AXMOVAX,SEGINTER1MOVES:[BX+2],AX某外设的中断服务程序为INTER1,其中断类型号为N,试编写一程序将该外设的中断向量装入到中断向量表中。32

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

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

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

×
保存成功