微机原理与接口技术 第七章1

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

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

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

资源描述

1第一节中断的基本概念一、什么是中断二、中断源和中断优先权三、中断服务程序四、断点和中断现场五、硬件中断和软件中断第二节8088CPU的中断系统一、8088CPU的中断分类二、8088CPU的中断优先权三、8088CPU响应中断的过程四、8088CPU如何获取中断类型号第三节可编程中断控制器8259A一、引言二、8259A的引脚、编程结构和工作过程三、8259A的编程1.设置中断屏蔽字2.发中断结束命令EOI四、8259A在IBMPC/XT系统中的应用五、8259A在Pentium机中的应用第四节中断程序设计一、中断向量的保存、设置和恢复二、软中断程序设计三、可屏蔽硬中断程序设计四、问题讨论1.中断嵌套问题2.中断向量的保存、恢复问题第七章中断技术2听课思考1、中断类型3、内部(软)和外部(硬)中断类型号怎样取得?2、内部(软)和外部(硬)中断执行过程不同点与相同点;4、CPU在响应中断自动完成哪几件事?5、中断向量如何设置?6、从外设的中断请求到CPU响应中断,有哪两个控制条件?7、每次硬中断结束后为什么要发中断结束命令字?软中断需要吗?8、屏蔽字的作用是什么?3第七章中断技术第一节中断的基本概念第二节8088CPU的中断系统第三节可编程中断控制器8259A第四节中断程序设计4第一节中断的基本概念一、什么是中断二、中断源和中断优先权三、中断服务程序四、断点和中断现场五、硬件中断和软件中断5一、什么是中断在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。6中断服务程序1中断服务程序2非预料事件1CPU执行流程非预料事件27二、中断源和中断优先权引起中断的因素很多,将发出中断申请的外设或内部原因,称为中断源给每个中断源指定一个优先权,称为中断优先权当多个中断源同时发出中断请求时,CPU按照中断优先权的高低顺序,依次响应。8三、中断服务程序处理中断源,完成其所要求功能的程序,称中断服务程序(中断例行程序、中断子程)。CPU执行流程中断服务程序1中断服务程序2非预料事件2非预料事件19非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。但事件的性质及处理方法则是已知的,确定的,即中断服务程序是事先编写好的,只是何时执行未知。中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。10四、断点和中断现场断点:是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。中断现场:是指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。111000:150H、、、、、、、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、PUSHAX、、、、IRETCPU在执行此指令时,某中断源发申请中断;CPU在执行完该指令后,转去执行中断子程地址1000:150H为断点断点概念:12早期中断概念的引入,是为解决CPU与外设间的速度匹配问题,提高CPU的工作效率。中断源主要是由外部硬件产生。当今的中断技术,不再限于外部硬件产生中断(称硬件中断或外中断),还可由CPU内部产生(如被零除操作),或者由程序预先安排,即由指令调用中断服务程序。(称软件中断或内中断)五、硬件中断和软件中断131000:150H、、、、、、、、、、MOVAH,01INT21HCMPAL,0Dh、、、、、、、、、、PUSHAX、、、、IRET用指令调用中断程序软件中断用指令调用中断程序14第二节8088CPU的中断系统一、8088CPU的中断分类二、8088CPU的中断优先权三、8088CPU响应中断的过程四、8088CPU如何获取中断类型号15一、8088CPU的中断分类按中断源的不同,中断分为内中断和外中断。1、内中断(软中断)指CPU执行某些特殊操作或由INT指令引起的中断①被零除操作或OF=1时执行INTO指令引起②使用DEBUG中的单步或断点设置操作引起③执行INTn指令引起16指外部芯片通过CPU的INTR引脚或NMI引脚发出中断申请引起的中断。当INTR上有高电平信号当NMI上有上升沿信号2、外中断(硬中断)8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND最大组态(最小组态)VCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET17可屏蔽中断由INTR引脚引起的中断,称可屏蔽中断。CPU是否响应INTR引脚上的中断请求取决于IF标志:IF=1,CPU响应INTR引脚上的中断请求IF=0,CPU不响应INTR引脚上的中断请求即当IF=0时,将INTR引脚上的中断申请屏蔽。非屏蔽中断由NMI引脚引起的中断,称非屏蔽中断。当NMI引脚上产生上升沿信号,CPU必响应此中断请求,即NMI引脚上的中断请求不受IF标志的控制,IF不能屏蔽NMI引脚上的中断请求。但在系统通电瞬间或屏蔽寄存器最高位置“0”可屏蔽NMI。将最高位置“1”又可以开放NMI。MOVDX,A0H;A0H~BFH为屏蔽寄存器MOVDX,A0HMOVAL,00HMOVAL,80HOUTDX,AL;屏蔽NMIOUTDX,AL;开放NMI18保留(ALT打印机)中断逻辑INTn指令INTO指令除法错误单步TF=1非屏蔽中断请求IR0IR6IR5IR4IR3IR2IR1IR7可编程中断控制器(PIC)8259AINTn4012CPUINTRNMI08090A0B0C0D0E0F系统定时器键盘保留(打印机)软盘串行通信接口保留(通信)彩色/图形接口8086/8088中断源19当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,再响应优先级较低的中断源。二、8088CPU的中断优先权优先级高低内中断(除零,INT指令,断点,INTO指令)非屏蔽中断可屏蔽中断低内中断(单步)20三、8088CPU响应中断的过程当中断源产生中断申请(INTR)后,不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,响应中断,给出INTACPU内部硬件会自动完成下列响应中断的过程:①取中断类型号N②当前PSW的内容入栈③清IF、TF标志为0④当前CS的内容入栈⑤当前IP的内容入栈⑥取内存单元(0:N×4)字内容送IP⑦取内存单元(0:N×4+2)字内容送CS此时,CPU中的指令地址寄存器CS:IP指向中断程序的入口,在下一个总线周期,开始执行中断程序。保存现场中断服务程序入口地址21当前指令执行完的含义•CPU正在执行一条指令,执行完本条指令,响应中断;•对于带重复前缀的串指令(如REPMOVSB),执行一次重复和串指令即可响应中断;•对MOV和POP指令,处理对象为段寄存器,以及STI和IRET指令执行完本条指令后,再执行一条指令才响应中断。22内存中断向量表0:0~3FFH1000:150h3000:200h0:N×40:N×4+20:0000、、、、、、0200h3000h、、、、、、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、、、MOVBX,CX、、、、、、IRET、、、类型N中断子程某中断源发申请中断,申请执行类型号为N的中断子程响应中断前SS:SP响应中断后SS:SP堆栈执行IRET后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h0:3FFH0:023从中断子程返回断点处,靠的是执行中断子程最后的指令IRET,从堆栈中取出断点地址给CS:IP,继续执行被中断的程序。故中断子程最后应安排IRET指令。1000:150h3000:200h0:N×40:N×4+20:0000、、、、、、0200h3000h、、、、、、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、MOVBX,CX、、、IRET、、、响应中断前SS:SP响应中断后SS:SP堆栈执行IRET后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h24四、8088CPU如何获取中断类型号由前面介绍知,当中断源产生中断请求后,不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,CPU内部硬件会自动完成响应中断的过程,共七个步骤而第一步就是获取中断类型号。不同的中断源,8088CPU获取中断类型号的方法不同。25根据8088CPU对中断的分类,各中断获取类型号的方法①CPU执行除零或OF为1执行INTO指令除零固定类型号00HOF为1执行INTO指令固定类型号04H②使用DEBUG下的单步和断点操作单步固定类型号01H断点固定类型号03H内中断③执行中断调用指令INTN由指令中给出指令中指定类型号N①非屏蔽中断引脚NMI上有中断申请信号(上升沿信号)非屏蔽中断固定类型号02H外中断②可屏蔽中断(参看中断响应时序图)当IF=1,引脚INTR上有中断申请信号(高电平信号)CPU按中断响应周期时序,从数据总线上获取中断类型号可屏蔽中断外部接口送上类型号26向量类型INTACLKAD7~AD0T1T2T3T4第一个中断响应周期T1T2T3T4第二个中断响应周期中断响应周期时序CPU从引脚INTA发中断响应信号,接口芯片接收此信号,把中断类型号准备好;同时ISRi=1,IRRi=0。CPU再从引脚INTA发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上;CPU从数据总线获取中断类型号。27第三节可编程中断控制器8259A一、引言二、8259A的引脚、编程结构和工作过程三、8259A的编程1.设置中断屏蔽字2.发中断结束命令EOI四、8259A在IBMPC/XT系统中的应用五、8259A在Pentium机中的应用28一、引言中断申请管理接口INT中断申请接口1网络接口2硬盘接口3软盘接口4打印机8088CPUINTRIF291.向CPU的引脚INTR发中断申请信号当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向CPU发出中断申请,使CPU能优先响应优先级最高的外部设备的中断申请。2.送中断类型号在CPU中断响应周期,针对不同外设的中断请求,向CPU传送不同的中断类型号,使CPU执行相应的中断子程。中断申请管理接口的主要功能:在IBMPC机由8259A可编程中断控制器(PIC)来完成。30二、8259A的引脚、编程结构和工作过程1.8259A的引脚2.8259A的编程结构3.8259A的工作过程311.8259A的引脚双列直插式芯片,28个引脚(参看教材图6-37)方波键盘保留串口2硬盘软盘打印机IOW18.2HzA0CS8259A总线A0数据线IORRDWR片选译码IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A级连情况INTAINTINTAINTR串口1定时器322.8259A的编程结构(参看教材图6-36)SP/ENCA0CA1CA2IORIOW总线D0~D7数据线D0~D7INTAINTRA0片选译码A5~A9CSA0RDINTAWRINT1×I3I4ICW1芯片控制ICW2中断类型号ICW3主从片连接关系ICW4方式控制0111A010010100OCW1中断屏蔽寄存器IMR00OCW2优先级设置、发EOI01OCW3特殊屏蔽,查询方式设置处理部分控制部分00000000ISR当前中断服务寄存器PR优先级裁决器VCCGND100A0IR0IR1IR2IR3IR

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

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

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

×
保存成功