微机原理-中断系统.ppt

微机原理-中断系统.ppt

ID:56475022

大小:1.76 MB

页数:281页

时间:2020-06-19

微机原理-中断系统.ppt_第1页
微机原理-中断系统.ppt_第2页
微机原理-中断系统.ppt_第3页
微机原理-中断系统.ppt_第4页
微机原理-中断系统.ppt_第5页
资源描述:

《微机原理-中断系统.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章 中断系统5.1中断的基本概念中断中断系统中断系统应具备的基本功能中断系统应具备的基本功能对于硬设备的中断请求,要具备屏蔽和开放功能,使得程序员能灵活控制。能实现“中断判优”,即中断源排队,当有多个中断源提出请求时,高级别的中断请求能被优先响应。能实现中断嵌套,即高级别的中断源能够中断低级别的中断服务程序。系统响应中断后,能自动转入中断处理中断处理结束,能自动返回。5.28086中断系统8086系统的中断分类软件中断硬件中断通过处理器的NMI(非屏蔽中断)引脚进入,NMI被响应时,自动产生2号类型中断。非屏蔽中断可屏蔽中断中断请求信号通过C

2、PU的INTR引脚进入;中断响应信号从INTA引脚发出;IF=1时,CPU响应中断;IF=0,中断请求被屏蔽通常可屏蔽中断源经过中断控制器8259A管理再向CPU发INTR请求。可屏蔽中断中断标志IF的状态指令CLI使IF=0关中断,禁止中断,中断屏蔽统复位,使IF=0任何一个中断被响应,使IF=0指令STI使IF=1开中断、允许中断、中断开放执行,IF=1执行指令IRET恢复原IF状态中断处理过程中断请求过程中断源向处理器发出请求中断信号;中断信号将被锁存,一直保持;直到处理器响应中断后,中断请求信号才被能清除中断过程处理器在执行每条指令的最后

3、一个时钟周期检测中断请求信号若发现中断请求信号有效,在允许中断的条件下,处理器响应中断。中断响应过程处理器会自动完成3项任务关闭中断,以禁止其它中断请求;断点(IP和CS)和标志寄存器内容入栈保护;获得中断服务程序入口地址,转中断服务程序。中断处理过程保护现场相关工作寄存器的内容压栈保护。开中断若要响应高级别的中断,则需要打开中断。执行中断服务程序关中断使得不被中断,可顺利恢复现场。恢复现场将压栈保护的内容顺序出栈给相关寄存器中断返回中断服务子程序的最后是一条中断返回指令IRET,执行后IRET后处理器自动从堆栈中弹出IP、CS和FLAGS的内容

4、,返回主程序继续执行。Y还有NMITEMP=1标志寄存器入栈TEMP=TF,IF=TF=0CS:IP入栈获取中断向量执行服务程序弹出CS:IP弹出标志寄存器返回被中断程序(1)(2)(3)(4)(5)NNY(6)8086各种中断源的优先权,实际上是指被识别出来的先后;多种中断同时请求时,最先响应的则可能是单步中断或NMI中断。中断响应过程中断向量中断服务子程序所在段的段基址(2个字节)中断服务子程序入口的偏移地址(2个字节)中断向量中断服务子程序的入口地址亦称中断向量它由两部分组成中断向量表一种类型的中断向量为4个字节,256种中断的中断向量总共

5、占用1K字节。在8086系统中,所有的中断向量按类型顺序存放于内存的最低地址(00000H~003FFH)的1K单元中。存放中断向量的这1K单元称为中断向量表中断向量在中断向量表中的位置:地址=N×4~(N×4+3)N×4字单元存放偏移地址N×4+2的字单元存放段基址设置中断向量的方法直接指令装入例5.3设置类型N的中断向量,其中断服务程序名为:INTHAND。例5.3设置中断向量,其中断服务程序名为:INTHANDMOVAX,0MOVES,AX;settobaseofinterruptvectorMOVBX,N﹡4;offsetoftypeNi

6、nterruptMOVAX,OFFSETINTHANDMOVES:WORDPTR[BX],AX;setaddrofMOVAX,SEGINTHAND;INTHANDMOVES:WORDPTR[BX+2],AXINTHAND:;interruptprocessingroutineIRET用DOS系统功能调用(INT21H)设置中断向量25H功能:设置中断向量预置:AH=25HAL=中断类型号(N)DS:DX=中断向量执行:INT21H35H功能:取中断向量预置:AH=35HAL=中断类型号(N)执行:INT21H返回:ES:BX=中断向量例5.5实

7、际中断程序结构。实际应用中,为了运行某个应用程序,通常采用替代原来的中断服务程序的办法。为此,应先保存原中断向量的内容,然后接管中断向量使其指向编制的新中断服务程序。最后,在应用程序终止退出前,从变量中获取原中断向量恢复到中断向量表中。具体程序如下:;堆栈段STACKSEGMENTSTACK'STACK’DW128DUP(0)STACKENDS;数据段DATASEGMENT'DATA'INT_SEGDW?;定义变量,以保存中断向量段址INT_OFFDW?;定义变量,以保存中断向量偏移量DATAENDS;代码段CODESEGMENT'CODE'AS

8、SUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA;建立数据段址MOVDS,AXMOVAL,N;N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。