第9章 中断系统与 8259A 中断控制器

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

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

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

资源描述

第九章中断系统与8259A中断控制器9.1中断的基本概念复习CPU与外设信息交换的控制方式种类以查询方式输入为例当外设数据未准备好时,CPU需要不断查询外设是否准备好的状态,效率低读取状态信息数据准备好?从数据口读数据NY1.中断方式示意(以输入中断为例)③数据④中断请求⑤中断响应⑦数据断点现行程序中断服务子程序⑥⑧②现行程序输入设备输入接口①启动CPU⑨中断基本概念2.什么是中断?CPU暂停执行现行程序,转而处理随机事件,处理完毕后再返回被打断的程序,这一全过程称为中断。3.中断源能够引发CPU中断的信息源(1)外部中断源(硬件中断源)I/O设备如键盘、显示器、打印机数据通道如磁带、磁盘时钟如82540#,由此引发的中断故障源如掉电、存贮器奇偶校验错(2)内部中断源(软件中断源)执行INT软件中断指令如执行指令INT21HCPU指令执行产生的异常如被0除、单步执行中断基本概念4.中断系统系统为实现中断而采取的硬件和软件措施。5.中断系统应具备的基本功能对于硬件中断,接口电路应具备‘屏蔽’和‘开放’的功能,这种功能由程序员通过软件去控制。能实现中断判优(中断排队),当有多个中断源提出请求时,应能优先响应高级别的中断源。中断基本概念能够实现中断嵌套,即高级别的中断源能够中断低级别的中断服务程序。响应中断后,能自动转入中断处理,处理完毕能自动返回断点。现行程序断点为B服务为A服务断点为A服务设“B”级别高于“A”中断基本概念1.开中断指令STI功能:使F寄存器中I标志置1,CPU处于开中断状态。2.关中断指令CLI功能:使F寄存器中I标志置0,CPU处于关中断状态。3.软件中断指令INTnn为中断类型码,n为0~255之间有定义的无符号整数。功能:无条件转向n型中断服务子程序。9.280X86的中断指令INTn指令的执行过程—CPU响应软件中断的过程①F寄存器→栈(保存INTn之前的F状态)使F中的T标志置0——禁止单步操作I标志置0——CPU处于关中断状态②断口地址→栈先:断口基地址(CS)→栈,后:断口偏移地址(IP)→栈③CPU从4n~4n+3单元取出n型服务程序入口地址→IP:CS,从而转入n型中断服务程序。80X86中断指令4.中断返回指令IRET功能:依次从栈顶弹出6个元素→IP,CS,F如果栈顶是INTn的断口地址,则执行IRET后,返回断点,否则不能。执行INTn栈顶示意图执行IRET示意图sp→断口偏移地址断口段基址FCSFIPsp→IRET是中断服务子程序的出口指令80X86中断指令9.3中断向量1.什么是中断向量?中断向量是实模式下,中断服务子程序的入口地址它由2部分组成:服务程序所在代码段的段基址2个字节服务程序入口的偏移地址2个字节2.中断向量表每个中断都指定了一个类型码,也称为中断号。每一种中断对应有一个中断服务程序(InterruptServiceProgram——ISP)中断类型码通过一个地址指针表与中断服务程序的入口地址相联系:实模式下:该表称为中断向量表;保护模式下:该表称为中断描述符表。3.中断向量表的设置CPU规定:在实模式下,中断向量表需设置在系统的RAM最低端的1K单元(00000H~003FFH)00000H:00004H:003FCH:0型中断向量1型中断向量255型中断向量……n型中断向量4*n:中断向量4.中断向量表的表地址与中断类型的关系如:“21H”型中断向量:存放在84H~87H单元中解:21H型中断的中断向量应存放在4*21H~4*21H+3这四个单元中。4n+0+2+3+1n型服务程序入口的偏移地址n型服务程序入口的段基址n型中断向量中断向量例:若21H型中断的中断向量为:1234H:5678H,问:具体的存放情况时怎样的?5.中断向量表的初始化由BIOS设计的中断服务程序(如INT16H,INT10H…)其中断向量在加电时由BIOS负责写入中断向量表。由DOS设计的中断服务程序(如INT21H)其中断向量是在启动DOS时,由DOS负责写入中断向量表。用户程序开发的中断服务程序,由用户程序写入其中断向量。中断向量XX:YY…用户编写的n型中断服务程序IRETYYXX中断向量表4×n?问题:用户如何向中断向量表中写入中断向量?中断向量DOS设计2个子程序,专门用于中断向量的读出、写入[INT21H的35H子功能]功能:读出n型中断向量入口:AL=中断类型码出口:ES:BX=n型中断向量[INT21H的25H子功能]功能:写入n型中断向量入口:DS=中断服务程序所在代码段的段基址DX=中断服务程序入口的偏移地址AL=中断类型码出口:无中断向量例:把用户程序中以“TIMER”命名的中断服务子程序的入口地址→4×1CH~4×1CH+3单元PUSHDS中断向量代:…MOVAH,35HMOVAL,1CHINT21H数:OLD1CDD?MOVWORDPTROLD1C,BXMOVWORDPTROLD1C+2,ESMOVAH,25HMOVAL,1CHINT21H…MOVAX,CSMOVDS,AXMOVDX,OFFSETTIMERPOPDS6.中断向量的引导作用YYXX21H型中断向量4×21H用户程序MOVAH,1INT21HMOVDL,AL……NEXT:F寄存器内容堆栈区NEXT的偏移地址NEXT的段基址①XX:YY…21H型服务程序IRETIPCS②③IPCSF④IRET——CPU响应软件中断的过程中断向量CPU中断硬件中断(外部中断)软件中断PC机256种中断可屏蔽中断非屏蔽中断BIOS中断DOS中断DOS专用中断DOS保留中断用户可用DOS中断用户可开发的中断9.4系统中断的分类CPU中断逻辑CPU中断软件中断(INTn指令)非屏蔽中断请求中断控制系统NMI可屏蔽中断请求INTR系统中断的分类1.CPU中断CPU中断是指:CPU执行某些操作而引发的中断,这类中断使用了0、1、3、4、6、7中断号。(1)除法错中断——0型中断(2)单步中断——1型中断(3)断点中断——3型中断(4)溢出中断——4型中断系统中断的分类2.软件中断执行有定义的INTn指令而引发的中断,称为软件中断。软件中断使用05H,10H~FFH中的若干个中断号。又分为:(1)BIOS中断BIOS中断,占用了05H、10H~1FH中断号,用户程序执行相关的软中断指令可以调用相应的中断服务程序。INT05H屏幕打印;INT10H屏幕显示I/O;INT11H设备配置检测;系统中断的分类INT12H测试内存容量;INT13H磁盘I/O;INT14H串行通信I/O;INT15HBIOS扩展功能;INT16H键盘I/O;INT17H打印机I/O;INT18H启动PC机ROMBASIC(AT机)无;INT19H重新装入引导程序;INT1AH实时时钟管理。中断号1DH,1EH,1FH,41H,46H也被BIOS占用了。但是,与这些中断号对应的并不是中断服务程序。系统中断的分类(2)DOS中断DOS中断,又分为DOS专用中断,DOS保留中断,用户可调用的DOS中断以及保留给用户开发的中断。DOS专用中断①22H型中断②23H型中断③24H型中断④28H~3FH型中断系统中断的分类用户可调用的DOS中断①20H型中断②21H型中断③25H型中断④26H型中断⑤27H型中断用户可开发的DOS中断DOS保留的中断系统中断的分类外部硬件中断是由CPU以外的中断请求而引发的。如果有多个中断请求,怎样连接至CPU呢?中断0…中断n中断请求80X86INTR?8259A9.58259A中断控制器1.8259A的内部结构数据总线缓冲器D0~D7读/写逻辑级连/缓冲比较器CAS1CAS0CAS2SP/ENRDWRA0控制逻辑INTINTA中断服务寄存器(ISR)优先权电路中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器(IMR)内部总线CS数据总线缓冲器D0~D7读/写逻辑级连/缓冲比较器CAS1CAS0CAS2SP/ENRDWRA0控制逻辑中断服务寄存器(ISR)优先权电路中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器(IMR)内部总线CS(1)中断请求寄存器(IRR)寄存引脚IR0~IR7的中断请求信号,IRRi位置1,表明IRi引脚上有了中断请求信号8259A内部结构2.中断屏蔽寄存器(IMR)寄存程序员写入的中断屏蔽字,屏蔽字某位=1(IMRi位=1),则与该位对应的中断请求信号(IRRi位)就不能送到中断优先权电路。数据总线缓冲器D0~D7读/写逻辑级连/缓冲比较器CAS1CAS0CAS2SP/ENRDWRA0控制逻辑中断服务寄存器(ISR)优先权电路中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器(IMR)内部总线CS8259A内部结构如:MOVAL,11111100BOUT屏蔽寄存器口地址,AL;屏蔽IRR7~IRR2的请求开放IRR1,IRR0…如:INAL,屏蔽寄存器口地址ANDAL,11110111BOUT屏蔽寄存器口地址,AL;开放IRR3的请求;对其它位的请求不改变屏蔽/开放的状态8259A内部结构优先权电路Q3Q4IR3IR4Q3Q4IMRIRR……......数据总线缓冲器D0~D7读/写逻辑级连/缓冲比较器CAS1CAS0CAS2SP/ENRDWRA0控制逻辑中断服务寄存器(ISR)优先权电路中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器(IMR)内部总线CS3.优先权电路(排队电路)8259A内部结构②比较CPU正为之服务的中断源和刚进入优先权电路的中断源,哪一个级别更高。通过判优‘选中’其中级别最高的中断源,然后通过控制电路,从INT端向CPU提中断请求。作用:①比较同时送达优先权电路的中断请求,哪一个级别最高。8259A内部结构数据总线缓冲器D0~D7读/写逻辑级连/缓冲比较器CAS1CAS0CAS2SP/ENRDWRA0控制逻辑INTINTA中断服务寄存器(ISR)优先权电路中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器(IMR)内部总线CS4.中断控制电路8259A内部结构③通过INTA接收CPU送来的中断响应信号,中断响应信号是2个连续的负脉冲。INTA使8259向CPU送出被选中的中断源的中断类型码使与被选中的中断源对应的ISRi位置1,IRRi位置0作用:①寄存一组初始化命令字和操作命令字,通过译码产生内部控制信号②当判优电路选中一个中断源时向CPU提中断请求(INT)8259A内部结构数据总线缓冲器D0~D7读/写逻辑级连/缓冲比较器CAS1CAS0CAS2SP/ENRDWRA0控制逻辑INTINTA中断服务寄存器(ISR)优先权电路中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器(IMR)内部总线CS5.中断服务寄存器(ISR)8259A内部结构ISR:8位寄存器,ISRi位与IRRi位一一对应作用:记录CPU正为之服务的是哪一个中断源,怎样记录?反之,如果ISR0位由1→0,表明IR0的中断服务程序执行完了所以ISR的每一位都是响应中断源的中断服务标志位。如:通过判优电路IRR0位的请求被选中,8259A向CPU发中断请求,通过INTA收到第一个中断响应信号后,ISR0位置1,IRR0位置0。ISR0位置1,表明CPU正在准备(或正在)执行IR0的服务程序。8259A内部结构6.数据总线缓冲器作用:①完成与CPU数据线配接②接收初始化命令字,操作命令字③当收到第二个中断响应脉冲时,通过他们向CPU送出被选中的中断源的中断类型码n在这之后CPU从4n+0~4n+3单元取出n型中断向量,从而转入n型服务程序。8259A内部结构7.读/写控制模块功能:接收片选信号CS、端口选择信号A0和读写控制信号RD、WR。一片8259A在系统中占用两个口地址

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

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

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

×
保存成功