中断、8086中断管理、8259技术

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

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

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

资源描述

1第一节中断的基本概念一、什么是中断二、中断源和中断优先权三、中断服务程序四、断点和中断现场五、硬件中断和软件中断第二节8088CPU的中断系统一、8088CPU的中断分类二、8088CPU的中断优先权三、8088CPU响应中断的过程四、8088CPU如何获取中断类型号第三节可编程中断控制器8259A一、引言二、8259A的引脚、编程结构和工作过程三、8259A的初始化编程第四节中断程序设计一、中断向量的设置*三、可屏蔽硬中断程序设计中断技术2第一节中断的基本概念一、什么是中断二、中断源和中断优先权三、中断服务程序四、断点和中断现场五、硬件中断和软件中断3一、什么是中断在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行/处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。4中断服务程序1中断服务程序2非预料事件1CPU执行流程非预料事件25二、中断源和中断优先权‰引起中断的因素很多,将发出中断申请的外设或内部原因,称为中断源‰给每个中断源指定一个优先权,称为中断优先权‰当多个中断源同时发出中断请求时,CPU按照中断优先权的高低顺序,依次响应。6三、中断服务程序处理中断源,完成其所要求功能的程序,称中断服务程序(中断例行程序、中断子程)。CPU执行流程中断服务程序1中断服务程序2非预料事件2非预料事件17非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。但事件的性质及处理方法则是已知的,确定的,即中断服务程序是事先编写好的,只是何时执行未知。中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。8四、断点和中断现场断点:是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。中断现场:是指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。91000:150H、、、、、、、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、PUSHAX、、、、IRET此地址为断点断点概念:内存中的程序:假设CPU在执行此指令时,某中断源发中断请求;CPU在执行完该指令后,转去执行中断子程10z早期中断概念的引入,是为解决CPU与外设间的速度匹配问题,提高CPU的工作效率。中断源主要是由外部硬件产生。z当今的中断技术,不再限于外部硬件产生中断(称硬件中断或外中断),还可由CPU内部产生(如被零除操作),或者由程序预先安排,即由指令调用中断服务程序。(称软件中断或内中断)五、硬件中断和软件中断112A00:0080H、、、、、、、、、、MOVAH,01INT21HCMPAL,0Dh、、、、、、、、、、PUSHAX、、、、IRET用指令调用中断程序软件中断用指令调用中断程序此地址为断点12第二节8088CPU的中断系统一、8088CPU的中断分类二、8088CPU的中断优先权三、8088CPU响应中断的过程四、8088CPU如何获取中断类型号13一、8088CPU的中断分类按中断源的不同,中断分为内中断和外中断。1、内中断(软中断)指CPU执行某些特殊操作或由INT指令引起的中断①被零除操作或OF=1时执行INTO指令引起②使用DEBUG中的单步或断点设置操作引起③执行INTn指令引起14指外部芯片通过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)TESTREADYRESET15z可屏蔽中断——由INTR引脚引起的中断CPU是否响应INTR引脚上的中断请求取决于IF标志:IF=1,CPU响应INTR引脚上的中断请求IF=0,CPU不响应INTR引脚上的中断请求即当IF=0时,将INTR引脚上的中断申请屏蔽。z非屏蔽中断——由NMI引脚引起的中断CPU必响应NMI引脚上的中断请求:上升沿信号,即此中断请求不受IF标志的控制,IF不能屏蔽之。但系统通电瞬间或将屏蔽寄存器最高位置“0”可屏蔽NMI;其最高位置“1”又可以开放NMI:MOVDX,A0H;A0H~BFH为屏蔽寄存器MOVDX,A0HMOVAL,00HMOVAL,80HOUTDX,AL;屏蔽NMIOUTDX,AL;开放NMI了解16保留(ALT打印机中断逻辑INTn指令INTO指令除法错误单步TF=1非屏蔽中断请求IR0IR6IR5IR4IR3IR2IR1IR7可编程中断控制器(PIC)8259AINTn4012CPUINTRNMI08090A0B0C0D0E0F系统定时器键盘保留(打印机)软盘串行通信接口保留(通信)彩色/图形接口8086/8088中断源17当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,再响应优先权较低的中断源。二、8088CPU的中断优先权单步中断与断点中断是利用DEBUG调试程序时的两种调试方式:¾单步中断:程序每执行一条指令就停下来¾断点中断:在程序中所需之处设置断点,程序连续执行,遇到断点则停下来。可根据需要,在程序任意位置设置断点。内中断(除零INT指令断点中断INTO指令)非屏蔽中断可屏蔽中断单步中断(内中断之一)高低18三、8088CPU响应中断的过程当中断源产生中断申请后,不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,CPU内部硬件会自动完成下列响应中断的过程:①取中断类型号N②当前PSW的内容入栈③清IF、TF标志为0④当前CS的内容入栈⑤当前IP的内容入栈⑥取内存单元(0:N×4)字内容送IP取中断子程⑦取内存单元(0:N×4+2)字内容送CS入口地址此时CS:IP指向中断程序的入口,开始执行中断程序。保存现场板书19当前指令执行完的含义•CPU正在执行一条指令,执行完本条指令,响应中断;•对于带重复前缀的串指令(如REPMOVSB),执行一次重复和串指令即可响应中断;•对MOV和POP指令,处理对象为段寄存器,以及STI和IRET指令执行完本条指令后,再执行一条指令才响应中断。20指令中断过程指令中断响应过程——四部曲:①②③④。中断处理完毕,返回⑤一定要看懂!21内存中断向量表0000:0000~0000H:03FFH1000: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:0内存单元的逻辑地址类型N中断子程入口地址①②③④返回22从中断子程返回断点处,靠的是执行中断子程最后的指令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)=3000h进入中断子程序返回主程序23四、8088CPU如何获取中断类型号由前面介绍知,当中断源产生中断请求后,不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,CPU内部硬件会自动完成响应中断的过程,共七个步骤而第一步就是获取中断类型号。不同的中断源,8088CPU获取中断类型号的方法不同。24根据8088CPU对中断的分类,各中断获取类型号的方法①CPU执行除零或OF为1执行INTO指令除零固定类型号00HOF为1执行INTO指令固定类型号04H②使用DEBUG下的单步和断点操作单步固定类型号01H断点固定类型号03H内中断③执行中断调用指令INTN由指令中给出指令中指定类型号N①非屏蔽中断引脚NMI上有中断申请信号(上升沿信号)非屏蔽中断固定类型号02H外中断②可屏蔽中断(参看中断响应时序图)当IF=1,引脚INTR上有中断申请信号(高电平信号)CPU按中断响应周期时序,从数据总线上获取中断类型号可屏蔽中断外部接口送上类型号25nCPU从引脚INTA发中断响应信号,接口芯片接收此信号,把中断类型号准备好;同时ISRi=1,IRRi=0。oCPU再从引脚INTA发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上;pCPU从数据总线获取中断类型号。中断响应周期时序26第三节可编程中断控制器8259A一、引言二、8259A的引脚、编程结构和工作过程三、8259A的初始化编程27一、引言中断申请管理接口INT中断申请接口1网络接口2硬盘接口3软盘接口4打印机8088CPUINTRIF281.向CPU的引脚INTR发中断申请信号当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向CPU发出中断申请,使CPU能优先响应优先级最高的外部设备的中断申请。2.送中断类型号在CPU中断响应周期,针对不同外设的中断请求,向CPU传送不同的中断类型号,使CPU执行相应的中断子程。中断申请管理接口的主要功能:在IBMPC机由8259A可编程中断控制器(PIC)来完成。29二、8259A的引脚、编程结构和工作过程1.8259A的引脚2.8259A的编程结构3.8259A的工作过程301.8259A的引脚双列直插式芯片,28个引脚方波键盘保留串口2硬盘软盘打印机IOW18.2HzA0CS8259A总线A0数据线IORRDWR片选译码IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A级连情况INTAINTINTAINTR串口1定时器312.8259A的编程结构SP/ENCA0CA1CA2IORIOW总线D0~D7数据线D0~D7INTAINTRA0片选译码A5~A9CSA0RDINTAWRINT1×I3I4ICW1芯片控制ICW2中断类型号ICW3主从片连接关系ICW4方式控制0111A010010100OCW1中断屏蔽寄存器IMR00OCW2优先级设置、发EOI01OCW3特殊屏蔽,查询方式设置处理部分控制部分00000000ISR当前中断服务寄存器PR优先级裁决器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断申请寄存器00000000324个初始化命令寄存器ICW1、ICW2ICW3、ICW43个操作命令寄存器OCW1(IMR)OCW2、OCW3当前中断服务寄存器ISR中断申请寄存器IRR8259A内部有9个可读写的寄存器8259A的编程结构1×I3I4ICW1芯片控制ICW2中断类型号ICW3主从片关系ICW4方式控制处理部分控制部分00000000ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000中断屏蔽寄存器IMROCW2100101000001OCW3OCW18259A中断控制器33(1)初始化命令字(ICW1-ICW4)决定8259A的工作方式通常是在计算机系统启动时在初始

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

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

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

×
保存成功