- 3
- 0
- 约1.58万字
- 约 64页
- 2017-06-03 发布于湖北
- 举报
第四节 中断程序设计 一、中断向量的保存、设置和恢复 二、软中断程序设计 三、可屏蔽硬中断程序设计 四、问题讨论 一、中断向量的保存、设置和恢复 1. 保存中断向量 (35H功能) 入口参数 AL = 要保存向量的中断类型号N 功能号 AH = 35H 类型号 21H 出口参数 BX = ( 0: N×4 ) ES = ( 0: N×4 +2 ) 实现功能 将类型号N 的中断向量保存在ES、BX中 方法一: 用堆栈保存中断向量 MOV AL, 09H ;取中断向量 MOV AH, 35H INT 21H PUSH ES ;用堆栈保存 PUSH BX 、 、、 入口参数 AL = 要设置向量的中断类型号N DS:DX = 中断子程的入口地址(中断向量) 功能号 AH = 25H 类型号 21H 出口参数 无 实现功能 将类型N的中断向量设置在向量表中, 即 ( 0: N ×4) =类型N中断子程入口地址的偏移值 ( 0: N ×4+2) =类型N中断子程入口地址的段值 二、软中断程序设计 软中断子程与子程序的编写类似, 其不同点在于: 1.子程用CALL指令调用;中断子程用INT指令调用 2.子程用RET指令返回;中断子程用IRET指令返回 3.CALL指令直接用过程名做操作数, 即由过程名提供子程的入口地址 INT指令由类型号N到中断向量表中固定的单元 获得中断子程的入口地址 三、可屏蔽硬中断程序设计 分三大步骤: 1 . 了解IBM PC/XT系统可屏蔽硬中断的响应过程, 据连线确定外设中断申请对应的中断类型号; 2.主程中做好外设发出中断申请,CPU能够响应的准备工作; 3.编写可屏蔽硬中断子程,完成中断源请求的任务. 在主程序中应做的工作: ① CPU关中断 ( 用CLI置 IF=0 ) ② 保存原中断向量 ( 用35H系统功能 ) ③ 设置中断向量 ( 用25H系统功能 ) ④ 设置8259A的中断屏蔽字, 使21H端口对应位为0, 允许中断申请进入优先级裁决器 ⑤ CPU开中断 (用STI置IF=1 ) ① 处理中断源申请任务部分的编写与普通子程类似 ② 在中断子程结束前, 发中断结束命令清除 8259A 中ISR的记录; 否则,响应一次中断后, 同级中断和低级中断将被优先级裁决器屏蔽 ③ 用IRET中断返回指令返回主程被中断处 时钟信号连接在IR0上,申请的中断类型号为08H。 时钟信号是一个频率为18.2HZ的方波信号, 即每秒向8259A发出18.2次的中断申请。 如果CPU响应该中断申请, 则以每秒18.2次的频率执行08H类型的中断子程。 说明: ? 键盘接口通过8259A的IR1发中断申请, 类型号09H ? 键盘接口对按下键和释放键都向8259A发出中断申请, 即若CPU满足响应条件,对键盘上的一个按键操作, CPU将执行两次09H类型的中断子程: 按下键一次,释放键一次 CPU可从60H端口读取操作键的扫描码, 每个键对应有一个扫描码(P241) 由扫描码的D6~D0判断操作的是哪一个键, 由扫描码的D7位判断是按下键,还释放键。 D7=1,释放键(断码); D7=0,按下键(通码) ? 键盘中断子程中应发中断结束命令 第四次实验 中断程序设计说明 四、问题讨论 ? 中断嵌套问题 ? 中断向量的保存、恢复问题 CPU正在执行某一中断子程,又被其它中断源中断 使CPU转去执行另一中断子程,这个过程叫中断嵌套 在中断子程中, 用INT指令调用中断子程,引起了中断嵌套, 这种嵌套就是内中断引起的嵌套。 ① CPU在执行中断子程过程中,有可屏蔽硬中断申请发出。 ( 即有可屏蔽硬中断源产生) ② 中断子程开中断,即用 STI 指令使 IF = 1。 因为CPU响应中断过程中,将 IF 标志清0, 然后转去执行中断子程。 故进入中断子程后,IF=
您可能关注的文档
最近下载
- 人教六年级下册语文字帖直接打印DOC.doc VIP
- 三年(2023-2025)高考物理真题分类汇编:专题20 电学计算(全国通用)(解析版).docx VIP
- 肾病科优势病种中医诊疗方案梳理.doc VIP
- 湖南蒋氏部分字辈1教程范本.doc VIP
- 2025年城市管理协管队员招聘考试(公共基础知识与法律常识)题库.docx VIP
- CIMofCatamoldBASF陶瓷粉末注射成型准则.doc VIP
- 3年(2023-2025)全国高考物理真题知识点汇编专题7动量含详解.docx VIP
- 冠捷电源分析(天津)讲述.ppt
- 新版部编版四年级语文下册课内阅读理解专项练习(附答案解析).docx
- 医院制剂申请流程.docx VIP
原创力文档

文档评论(0)