微机原理与接口技术 第02章 中断

上传人:我*** 文档编号:137269851 上传时间:2020-07-06 格式:PPT 页数:42 大小:215KB
返回 下载 相关 举报
微机原理与接口技术 第02章 中断_第1页
第1页 / 共42页
微机原理与接口技术 第02章 中断_第2页
第2页 / 共42页
微机原理与接口技术 第02章 中断_第3页
第3页 / 共42页
微机原理与接口技术 第02章 中断_第4页
第4页 / 共42页
微机原理与接口技术 第02章 中断_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《微机原理与接口技术 第02章 中断》由会员分享,可在线阅读,更多相关《微机原理与接口技术 第02章 中断(42页珍藏版)》请在金锄头文库上搜索。

1、第2章 中断,2.1 中断系统概述 2.2 8086/8088的中断系统 2.3 IBM PC的BIOS调用及DOS功能调用,2.1中断系统概述 2.1.1 中断系统相关概念 1,CPU与外设间的数据传送方式 (1)无条件I/O方式; (2)查询I/O方式; (3)中断I/O方式; (4)DMA(直接存储器存取)方式。,(1)无条件传送 当外设的数据传送是定时的,且时间已知的情况下,CPU定时取入数据,而当CPU去取数据时,数据肯定已准备好;或CPU定时发送数据,外设肯定已准备好接收数据,这时采用无条件传送。 无条件传送是最简单的数据传送方式。,(2) 查询传送方式 在外设比CPU工作速度低得

2、多的情况下,在输入时,CPU要查询外设是否就绪(准备好输入数据),若就绪,才能读入数据;在输出时,则不断查询外设是否空闲(准备好接收数据),若空闲,则CPU输出一个数据。,例如,从外部设备端口输入并存入内存一组数据,设SR为状态寄存器,其第7位为就绪位,DR为数据寄存器,则程序段如下: MOV CX,0050H MOV BX,0200H WAIT:IN AL,SR TEST AL,80H JZ WAIT IN AL,DR MOV BX,AL INC BX LOOP WAIT,(3)中断传送 所谓中断传送方式就是,当CPU与外设交换数据时,无须连续不断地查询外设的状态,而是在需要时,由外设主动地

3、向CPU提出请求,让CPU为其服务。 在输入时,当外设数据就绪时,外设向CPU提出中断请求,CPU接到该请求后,暂停当前程序的执行,转去执行相应的中断服务程序,完成所需的数据输入,然后再返回去执行原来中断了的程序; 在输出时,当外设空闲时,外设向CPU提出中断请求,CPU接到该请求后,暂停当前程序的执行,转去执行相应的中断服务程序,完成所需的数据输出,然后再返回去执行原来中断了的程序。采用中断传送方式,可以大大提高系统的输入输出效率,节省大量的CPU时间。,2,中断:当CPU正在执行某程序时,由于外界事件的需要向CPU发出申请,CPU暂停现行程序的执行而转去处理临时发生的事件,处理完后再返回到

4、被中断程序的断点处,继续向下执行,这个过程称为中断。 在中断过程中执行的事件处理程序称为中断服务程序。,(1)一般的输入输出设备。如键盘、打印机、通信接口等。,(2)数据通道中断源。如磁盘。,(3)实时时钟。,(4)故障源。,(5)为调试程序而设置的中断源。,3,中断源 I/O设备或者事件需要CPU中断处理时,必须向CPU发出中断请求信号。该信号作为CPU的输入,当CPU收到该信号时,可引起中断。 引起中断的原因,或者说发出中断请求信号的源称为中断源。通常,中断源有以下几种:,2.1.2 中断系统的功能,(1)实现中断与返回,(2)能实现优先级排队,(3)能实现中断嵌套,2.1.3 中断响应

5、1. CPU响应中断的条件 (1)有中断请求信号。 (2)中断请求没有被屏蔽。 (3)CPU的中断是开放的。 (4)CPU在现行指令执行完毕时,响应中断。,(1)关中断。 (2)保存断点。 (3)保护现场。 (4)给出中断服务程序入口,并转入该服务程序。 (5)恢复现场。 (6)从中断返回。,2. 中断响应时及中断响应期间CPU应做的工作,2.1.4 中断向量表 以8086中断向量表为例,后续,2.2 8086/8088的中断系统,256项中断中 前5项为系统所用 类型0:除法错误中断 类型1:单步中断(TF=1) 类型2:NMI 类型3:INT 3 指令 类型4:溢出中断 保留27项以备将来

6、扩充(类型5类型31) 余下的224项用户可以使用,2.2.1 8086/8088的中断系统分类,非屏蔽中断请求,中断逻辑,INT n (指令),INTO (指令),除法 错误,单步中断 (TF=1),8259A PIC,可屛蔽中断请求,NMI,INTR,1. 内部中断 (1)方式0除法错中断 (2)方式1单步中断 (3)方式3断点中断 (4)方式4溢出中断 (5)用户定义的软件中断:利用INT指令产生的。,所有的内部中断都具有下述特点: 1)中断向量码或者包含在指令中,或者是预定的; 2)除单步中断外,内部中断都无法禁止; 3)除单步中断外,任何内部中断的优先级都比任何外部中断的高。,2.

7、外部中断 8086/8088CPU有两种外部中断请求输入,即非屏蔽中断请求输入和可屏蔽中断请求输入。 用户不能禁止的中断称为非屏蔽中断,这种中断一旦出现,CPU必须立即响应,所以非屏蔽中断总是用于处理紧急事件。 用户能控制的中断称为可屏蔽中断,用户可通过软件禁止可屏蔽中断的中断源发中断请求信号,或者关闭中断而对发出的请求不作响应。 可屏蔽中断受8259A中断控制器控制 可屏蔽中断受IF控制位的控制 IF=1时,外部中断请求可被CPU接受; IF=0时,外部中断请求被阻止 可屏蔽中断具体内容见下章,表8.1 中断优先级,中 断 优先级,除法错、INT nn、INTO 最高 NMI INTR 单步

8、中断最低,2.2.2 中断指令,1. INT 中断指令 指令汇编格式:INT n 操作 SPSP2,(SP,SP+1)F IF 0,TF 0 SP SP2,(SP,SP+1)CS;保存被中断程序的段地址部分 SP SP2,(SP,SP+1)IP;保存被中断程序的偏移地址部分 CS (n*4+2,n*4+3);中断向量的段地址部分 IP (n*4,n*4+1);中断向量的偏移地址部分 受影响的标志位:IF,TF 说明:n称为中断类型号,必须是0255之间的立即数。,2. INTO 溢出中断指令(略) 指令汇编格式:INTO 操作:如果OF=1,则产生一个中断类型为4的软件中断;否则,不产生任何操

9、作。即:如果OF=1,则 SPSP2,(SP,SP+1)F IF 0,TF 0 SP SP2,(SP,SP+1) CS SP SP2,(SP,SP+1) IP CS (4*4+2,4*4+3) IP (4*4,4*4+1) 受影响的标志位:IF,TF 说明:INTO指令一般用在算术运算指令后面,在有溢出的情况下,启动一个溢出中断服务程序。,3. IRET 中断返回指令 指令汇编格式:IRET 操作:IP (SP,SP+1),SP SP+2 CS (SP,SP+1),SP SP+2 F (SP,SP+1),SP SP+2 受影响的标志位:所有状态标志位。 说明:IRET指令是任何中断服务程序的最

10、后一条要执行的指令,它使CPU从中断服务程序返回被中断程序的断点处继续执行。,2.2.3 中断向量设计 8086/8088能处理256种不同方式的中断,每种中断都要求一个方式码,供cpu识别,然后转至相应的中断服务程序 ?8086通过何种方式获得各个中断的中断号 系统所用的5钟中断(方式0方式4),其中断号固定。 软件中断(INT n),其中断号包含在该指令编码中 硬件中断,其中断号由中断控制器8259A向CPU提供,2.2.3 中断向量设计 ?如何根据中断方式码转至相应的中断服务程序 中断向量:中断处理程序的入口地址 中断向量表:8086/8088中断系统把所有(256种)中断处理程序的入口

11、地址集中存放在存储器的起始区域,这个区域就形成了中断处理程序入口地址表,该表称为中断向量表,8086/8088在其内存的前1K字节(地址为00000H003FFH)建立了一个中断向量表。表中内容分为256项,对应于类型号0255,其结构如下:,类型0的中断服务 程序入口地址 类型1的中断服务 程序入口地址 类型2的中断服务 程序入口地址 : : 类型255的中断服务 程序入口地址,00000H 00003H,003FCH 003FFH,00008H 0000BH,00004H 00007H,0000CH,003FBH,每一个中断向量占用4个字节单元,用来存放相应类型的中断服务程序的入口地址 高

12、两个字节存放服务程序的入口地址的段地址部分 低两个字节存放入口地址的偏移地址部分。 Cpu将中断向量码乘以4就可以得到存放相应中断向量的地址 将该地址中的内容(即中断向量)读出就可转到相应的中断服务程序 将低2字节的内容读出送到IP中 将高2字节的内容读出送到CS中,24,中断向量:中断服务程序的入口地址。每个入口地址由4B组成,高地址存放段基址,低地址存放偏移量。 中断向量表:存放256种中断的中断向量 (2564=1KB) 。在内存的03FFH单元。 中断类型码n与中断向量: 中断类型码n4的连续4B为中断类型n的中断服务程序入口地址。,25,例1:若中断类型号为3,则由中断类型号取得中断

13、服务入口地址的过程如下图所示:,中断操作步骤(教材P143) 获取中断号 计算中断向量地址 取中断向量,并把中断服务程序的入口的偏移地址送入IP,段地址送入CS 转入中断服务程序并执行 中断返回,返回到断点处 以上五步骤是8086处理中断的流程,为使用户自己编写的中断服务程序能够正确执行,必须把路径(主要是中断向量表)铺垫完毕,中断向量设计,中断向量的置换:用户可以利用保留的中断类型号扩充自己需要的中断功能,对新增加的中断功能要在中断向量表中建立相应的中断向量。 中断向量的置换通常有两种方法 使用传送指令编写程序段 利用DOS功能调用存取中断向量,使用传送指令编写程序段设置中断向量,例:中断类

14、型码4AH,中断程序名为INTHAND,设置中断向量MOV AX,0 MOV ES,AX;设置附加段地址,让附加段从0地址处开始 MOV BX,4AH*4;取得中断向量的存放地址 MOV AX,ES:WORD PTR BX PUSH AX;保存原中断向量的偏移地址 MOV AX,ES:WORD PTR BX+2 PUSH AX ;保存原中断向量的段地址 MOV AX,OFFSET INTHAND MOV ES:WORD PTR BX,AX MOV AX,SEG INTHAND MOV ES:WORD PTR BX+2,AX INTHAND: IRET,INTHAND PROC,利用DOS功能调

15、用存取中断向量,设置中断向量 利用DOS提供的25H系统功能调用来设置中断向量。 入口参数:AL=中断向量号 AH=25H DS=中断处理程序入口地址的段基值 DX=中断处理程序入口地址的偏移量 执行 INT21H 获取中断向量 利用DOS提供的35H系统功能调用来获取中断向量。 入口参数:AL=中断向量号 AH=35H 执行 INT21H 出口参数:ES=中断处理程序入口地址的段基值 BX=中断处理程序入口地址的偏移量,利用DOS功能调用存取中断向量(续), MOVAL,N;N为中断类型号 MOVAH,35H;35H为子功能号 INT21H;取出中断类型N的老 PUSHES ;保护原中断处理程序的段基值 PUSHBX ;保护原中断处理程序的偏移量 PUSHDS MOVAX,SEG INTHAND;段基值送DS MOVDS,AX; MOVDX,OFFSET INTHAND;偏移量送DX MOVAL,N;中断类型号N送AL MOVAH,25H;子功能号25H送AH INT21H;入口地址INTHAND写入中断向量表中 ,2.2.4 软件中断服务程序设计,软件中断服务程序设计两部分 主程序设计 中断处理程序设计 例:用软件中断的方式完成字符串显示,要求中断号为40H,DSEG SEGMENT MSG DB The

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号