微机系统与接口教学资料 第七章.ppt
《微机系统与接口教学资料 第七章.ppt》由会员分享,可在线阅读,更多相关《微机系统与接口教学资料 第七章.ppt(57页珍藏版)》请在三一办公上搜索。
1、7.1 中断的基本概念7.2中断的类型7.3中断的优先级与中断嵌套7.4中断向量7.5中断指令7.6中断服务程序的进入7.7中断的执行7.8可编程中断控制器8259,第七章 IBM PC的中断系统,7.1 中断的基本概念,中断最初是作为处理器与外部设备交换信息的一种控制方式提出的。由此,最初的中断全部是对外部设备而言的,称为外部中断或硬件中断。随着计算机技术的发展,中断的范围也随之扩大,出现了内部软件中断的概念,它是为解决机器内部运行时出现的异常以及为编程方便而提出的。,外部中断或硬件中断通常称为中断,软件中断或异常中断通常称为异常(Exception),7.1 中断的基本概念,不论哪种中断都
2、遵循同样的中断处理过程,中断源,中断请求,当 前 程 序,中断服务程序,程序断点,中断返回,中断响应,中断:处理器暂停执行当前程序,转而处理随机发生的事件,处理完毕后再返回到断点处继续执行原来程序的过程,7.2 中断的类型,PC系列微机最多可以支持256种中断,它们被分为四种类型:1.内部中断和异常:被零除、单步、溢出、断点2.软件中断:指令中断 INT n3.外部可屏蔽中断:INTR4.外部非屏蔽中断:NMI每个中断和异常都指定了一个类型号代表不同的优先级。,7.2 中断的类型,1.内部中断和异常,处理器执行某些操作而引起的中断,包括除法错误异常、单步调试中断、断点中断等这类中断使用了0H0
3、7H中的若干个中断号INT0-除法错误,没有INT0形式的指令,CPU自动产生INT1-单步中断,同样也没有INT1形式的指令,TF1时产生INT2-NMI,CPU处理外部紧急事件,硬件中断INT3-格式:INT,断点中断INT4-格式:INTO,溢出中断,OF1时配合INTO执行,7.2 中断的类型,2.软件中断,执行有定义的INT n指令而引发的中断,称为软件中断,它的形式是INT n,包括BIOS中断和DOS中断,以及用户自定义中断等有定义的 INT n:并非所有的中断号都有对应的中断 服务程序,没有定义的中断的INT n 是无意义的。定义 INT n 包含三个内容:1。确定合适的中断号
4、n2。用过程的形式完成中断服务子程序 3。将此过程的逻辑地址植入相应的中断矢量,7.2 中断的类型,3.外部可屏蔽中断,外部可屏蔽中断是处理器响应各种外部硬件中断的最常用的方法,通过CPU的INTR引脚产生外部可屏蔽中断,受处理器内部的中断允许标志位IF的控制,处理器以电平触发方式接受INTR请求,当每条指令结束时,若INTR为高电平且IF=1,则CPU响应相应I/O接口的中断请求。处理器只有一个INTR引脚可以接受外部可屏蔽中断请求,为了管理众多的外部中断源,微机系统中采用可编程中断控制器8259。PC系列机通过两片8259级连可以响应15个外部中断源。,7.2 中断的类型,(注意:硬件可屏
5、蔽中断没有INT n的指令形式,但是它有INT n 的实质性的内容,并且中断的发生是由INTR硬件引入),4.外部非屏蔽中断,为外部紧急请求提供服务的中断,通过处理器的NMI引脚产生NMI输入是上升沿触发的,只要NMI输入端上出现由0到1的跳变,一个中断服务请求就被锁存在CPU中,与IF标志的状态无关NMI有一个专用的类型号02H使用非屏蔽中断的典型例子是电源故障中断,7.2 中断的类型,7.3 中断的优先级与中断嵌套,通常一个系统有多个中断源,而CPU同一时刻只能响应一个中断源的请求,那么当多个中断源同时请求中断服务时,应该先响应哪一个,有一个次序安排的问题。按中断源的轻重缓急程度确定的优先
6、级别,称为优先级。,当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时,如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被中止的中断服务程序,这一过程称为中断嵌套。中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度,7.3 中断的优先级与中断嵌套,7.3 中断的优先级与中断嵌套,8088在内存的前1k字节建立了一个中断向量表,可存储256个中断向量,每个中断向量占用4个字节,分别存放中断服务程序入口地址的段地址和偏移量。,每个中断向量以类型码加以区别,如:Int 21h Int 10h 键盘中断
7、类型码 9 当执行中断时,CPU将类型码乘以4后,得到中断向量地址,进而得到IP和CS的值,它就是中断服务程序的入口地址,程序由此转入中断服务程序执行。,00000,0000C,00013C1F,1F3C:0100(1F4C0),PUSH AXPUSH BX,003FF,中断向量表,INT 3中断服务程序,中断向量,7.4 中断向量,中断向量表,地址(Hex)类型码 中断名称 03 0 除以0 47 1 单步 8B 2 非屏蔽 CF 3 断点 1013 4 溢出 1417 5 打印屏幕 181B 6 保留 1D1F 7 保留 2023 8 定时器 2427 9 键盘 282B A 保留的硬中断
8、 2C2F B 异步通信(COM2)3033 C 异步通信(COM1)3437 D 硬盘 383B E 软盘 3C3F F 并行打印机,地址(Hex)类型码 中断名称4043 10 视频显示I/O调用4447 11 设备检测调用484B 12 存储器容量检测4C4F 13 软/硬盘I/O调用5053 14 通信I/O调用5457 15 盒式磁带I/O调用585B 16 键盘I/O调用5C5F 17 打印机I/O调用6063 18 ROM BASIC6467 19 引导程序入口686B 1A 时间调用6C6F 1B 键盘CTRL-BREAK控制7073 1C 定时器报时7477 1D 显示器参数
9、表787B 1E 软盘参数表,7.5 中断指令,STI开中断指令将标志寄存器中的中断标志位IF置1,允许CPU响应来自INTR引脚的中断请求CLI关中断指令将标志寄存器中的中断标志位IF清0,使CPU不响应来自INTR引脚的中断请求,INT n软件中断指令n为中断号。调用n号中断服务程序将标志寄存器压栈(1.PUSH F)将TF置0(2.TF=0),禁止单步操作,将IF置0(2.IF=0),使CPU处于关中断状态断点的CS、IP压栈(3.PUSH CS 4.PUSH IP)从中断向量表取n号中断向量 IP、CS(5.CS=n*4+2,IP=n*4)转向n号中断服务程序,7.5 中断指令,IRE
10、T中断返回指令中断服务程序的出口指令,从栈顶弹出6个字节依次写入IP、CS和标志寄存器POP IPPOP CSPOP F在执行IRET之前必须保证栈顶是断点地址,否则执行IRET指令将导致系统瘫痪,7.5 中断指令,7.6 中断服务程序的进入 当CPU响应中断,便从中断向量表中相继取出偏移地址和段地址作为中断服务程序的入口地址,而转移去执行中断服务程序。因此,当用户要编写自己的中断服务程序时,必须将服务程序的入口地址填入系统的中断向量表中。下面所示程序表示怎样填写中断向量表,以实现用户所定义的60H中断。,CLI MOV AX,0 MOV ES,AX MOV DI,4*60H MOV AX,O
11、FFSET INTRE STOSW MOV AX,SEG INTRE STOSW STI,INTRE PROC PUSH AX PUSH BX.POP BX POP AX IRETINTRE ENDP,INT 60H,也可以DOS功能调用实现这一功能。CLIPUSH DSMOV AX,SEG INTRMOV DS,AXMOV DX,OFFSET INTR;中断服务程序入口地址放入DS:DX中MOV AH,25H;功能号25H送入AH中 MOV AL,60H;类型码放入ALINT 21H;调用21H 中断POP DSSTI,1、必须在指令执行完后才进入中断过程。2、四类中断比较判断是由顺序的。3
12、、CPU的中断处理是相似的。,7.7 中断的执行,(1)软中断 当PC机执行 INT n 等指令时,即产生了软中断,其执行过程如下:栈指针SP减2,标志寄存器内容入栈,然后清除T和I标志,以屏蔽中断。SP再次减2,将CS内容入栈。用中断类型码 n乘 4,计算中断向量地址,将向量中的后两个字节送CS寄存器。SP再次减2,把IP内容入栈,把中断向量中的前两个字节送至IP。由当前的CS和IP值作为段地址和偏移量,转入相应的中断服务程序中去执行。,7.7 中断的执行,(2)硬中断(可屏蔽中断),中断响应周期,8088响应中断,到转入中断处理,要经过两个中断响应周期。,T1 T2 T3 T4 T1 T2
13、 T3 T4,第一个中断响应周期,第二个中断响应周期,CLK,ALE,INTA,AD7AD0,向量类型码,第一个INTA信号:将在服务寄存器ISR相应位置位,表示正在为响应的那一级服务;同时将中断请求触发器复位。为本级再次中断请求做好准备。第二个INTA信号:要求8259A输入中断向量类型码。,可屏蔽中断的响应过程,可屏蔽中断的响应过程,7.8 中断控制器 Intel 8259A,8259A是一种可编程中断控制器,一片Intel 8259可管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端。当CPU响应中断时,为CPU提供中断类型码。,在PC/AT系列微机中,使用两片8259
14、级联,构成15级中断,7.81 功能 Intel 8259A是兼容于8080/8085和8086/8088系列的可编程中断控制器,其功能主要有:1)单片8259A可管理8级中断;2)通过级连,可管理多于8级的中断,在不增加其它电路的前提下,可使 用8片8259A构成64级主从式中断系统;3)每一级中断都可通过编程使之被屏蔽或被允许;4)8259A可通过编程被设定为几种不同的工作方式;5)8259采用NMOS工艺,只需要一组5V电源。,数据总线 缓冲器,读/写逻辑,级联缓冲 比较器,控 制 逻 辑,ISR,优先权电路,IRR,IMR,IR0,IR7,D7D0,INTA INT,RDWRA0CS,
15、CAS0CAS1CAS2SP/EN,内部数据总线,7.82 结构,IR1,CS WRRDD7D6D5D4D3D2D1D0CAS0CAS1GND,VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2,D7D0 数据总线(双向)RD 读输入WR 写输入A0 选择内部寄存器地址CS 片选CAS2CAS2 级连线SP/EN 从程序/充许缓冲INT 中断输出INTA 中断响应输入IR0IR7 中断请求输入,8259管脚对照表,1 282 273 264 255 246 237 228 219 2010 1911 1812 1713 1614 15,管脚信号,8259
16、A的读写操作,7.83 工作方式,1 设置优先级的方式(1)全嵌套方式 全嵌套方式是8259最常用的工作方式。初始化后若没有再设置其它优 先级方式(如优先权旋转),8259自动进入全嵌套方式。其特点是:中断请求优先级顺序是IRQ 0IRQ7。当一个中断被响应时,中断服务寄存器ISR得到相应的那以位被置为“1”,且 保持到中断服务程序在返回前发中断结束命令为止。在ISR位置位期间,禁止再发生同级或较低记得中断,较高级的中断请求仍 能产生中断。每个中断请求可分别由IMR相应位屏蔽。(2)特殊全嵌套 特殊全嵌套方式同全嵌套方式只有一点不同,即:在特殊全嵌套方式下,当 正处理某一级中断时,又有同级的中
17、断请求产生时,8259A也会响应,从而实 现一种对同级中断请求的特殊嵌套。特殊全嵌套方式一般用于多片8259A级连的系统中。,(3)优先级自动旋转方式 优先级自动旋转方式一般用于系统中有多个优先级相等的中断源的情况。在这种方式下,优先级队列是变化的,一个设备受到服务后,其优先级自动降 到最低。初始优先级队列是固定的,为:IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7(由高到低)。如果这时IRQ1有中断请求,则在完成其中断服务后,优先级队列变为(由 高到低):IRQ0 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ1 优先级自动旋转方式由操作命
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机系统与接口教学资料 第七章 微机 系统 接口 教学 资料 第七
链接地址:https://www.31ppt.com/p-6614406.html