版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020年7月1日,1,2020年7月1日,1,2020年7月1日,1,2020年7月1日,1,2020年7月1日,1,2020年7月1日,1,第14章 x86PC的中断系统,*,1,DEC HEX BIN 14 0E 00001110,汇编语言与接口技术,2020年7月1日,2,第14章 x86PC的中断系统,学习本章后: 1、明确中断的概念 2、会处理中断 3、会管理和应用中断服务程序 4、会编写中断应用程序,2020年7月1日,3,第14章 x86PC的中断系统,本章的主要内容: 14.1 8088/86中断 14.1.1 中断源 14.1.2 中断服务程序 14.2 x86PC及中断分
2、配 14.3 中断应用程序,14.1 8088/86中断,中断概述 中断:产生了一种外部事件,通知CPU有设备需要服务。 计算机在执行正常程序的过程中,当出现异常事件或事先安排好的事件,迫使CPU暂时中止现行程序的执行,转去执行另一处理程序。当处理完后,CPU再返回到被暂时中止的程序,接着执行被暂时中止的程序。此过程称为中断 。 类型:8088/86中共有256中类型的中断:INT0,INT1,,INTFF。 0,1,FF,为中断向量号或者中断类型码。 保护:处理中断前保护有关寄存器到固定的内存单元:FR,IP,CS 中断服务程序入口: (中断向量号*4)IP (中断向量号*4+2)CS,20
3、20年7月1日,5,14.1 8088/86中断,例如: 中断向量表(右表) INT 0:0号中断除法错 INT 1:1号中断单步 INT 2:2号中断NMI,14.1 8088/86中断,14.1.1 中断源 中断源:引起中断的事件。 例如:外设输入/输出请求,计算机异常事故或其他内部原因。,14.1 8088/86中断,14.1.1 中断源(续) 中断分类 按照引起中断的方式,中断可分为: 硬件中断(或外中断):外设控制器或协处理器引起的中断 软件中断或内中断:程序中的中断指令INT或CPU错误结果产生的中断,14.1.1 中断源(续) 硬件中断由外部硬件产生,也称外部中断 硬件中断分两类
4、: 非屏蔽中断(NMI:Non Maskable Interrupt) 通过8086/8088的NMI脚引入,它不受中断允许标志IF的屏蔽;中断类型号=2 可屏蔽中断( Maskable Interrupt) 可屏蔽中断通过CPU的INTR脚引入,只有当标志寄存器的中断屏蔽标志IF为1时,才能引起中断 开中断指令: STI ,设置中断允许位(IF=1) 关中断指令: CLI ,清除中断允许位(IF=0),14.1 8088/86中断,14.1.1 中断源(续) 中断数目的扩展: 8259可编程中断控制器 x86用于中断的引脚INTR,INTA;Intel提供了8259可编程中断控制器芯片,使得
5、扩展中断数目的工作变得很容易。,14.1 8088/86中断,2020年7月1日,10,14.1 8088/86中断,不受中断标志位IF屏蔽: 1)非屏蔽中断(NMI):电源错、内存和总线奇偶等异常,中断类型号=2 2)程序中INT指令、运算结果异常等 受中断标志位IF屏蔽: 可屏蔽的外部设备中断请求(INTR),8259A中断级联 一片8259A管理8级中断,当申请中断的外设多于8级时可以将8259A级联使用,第一级为8259A主片,第二级为8259A从片,主片可接18片8259A从片,这样最多可管理64级中断源。 8259A中与中断相关寄存器 中断屏蔽寄存器(IMR) 中断命令寄存器,14
6、.1 8088/86中断,8259A的中断屏蔽寄存器(IMR) IMR的I/O端口地址 21H 8位对应8个外部设备,允许/禁止某设备产生中断 =0时,允许产生中断 =1时,禁止产生中断 例:只允许键盘中断,设置中断屏蔽字 MOV AL, 11111101B OUT 21H, AL 例:新增设允许键盘中断,设置中断屏蔽字 IN AL, 21H AND AL, 11111101B OUT 21H, AL CPU可以响应某设备的中断服务请求的条件 中断屏蔽寄存器中对应位=0,同时IF=1,中断命令寄存器 I/O端口地址 20H 8位含义 L2-l0: 指定IR0-IR7中哪个中断优先级最低 R(r
7、otate), SL(set level)控制IR0-IR7中断优先顺序 EOI:中断结束,当EOI=1时,将当前中断请求被清除 中断服务程序中,中断处理结束前,应将EOI置1 结束硬件中断指令 IN AL, 20H OR AL, 20H OUT 20H, AL,软件中断,软件中断,软件中断也称内部中断,由3种情况引起 程序中的中断指令 INT n 操作数n指出中断类型号,0FFH 如 INT 12H ;存储器容量测试 CPU的某些运行结果 除法错中断:除数为零/商超出表数范围,中断类型号为0的内部中断 溢出中断:运算结果溢出,OF=1,INTO指令将引起类型为4的内部中断 调试程序(DEBU
8、G)设置的中断 单步中断:标志位TF=1时,中断类型号=1 断点中断:将程序分段,每段设置一个断点(INT 3),中断类型号=3 软件中断不受中断屏蔽标志IF影响,14.1 8088/86中断,14.1.2 中断服务程序 每个中断都有一个相关的程序。发生中断时,要执行该程序完成特定的任务,这个程序称为中断服务程序。 中断发生时,CPU自动执行中断服务程序。 如何找到中断服务程序?,14.1.2 中断服务程序,x86有256种类型的中断 每种中断有一个中断类型号,类型号 0-FFH 每种类型中断都由相应的中断处理程序处理 中断向量表 各类型中断处理程序的入口地址表 在存储器中, 1KB(0000
9、0H-003FFH) 每类型中断向量占4字节,对应中断处理程序入口CS、IP值 每类中断向量表地址=4中断类型号n,中断向量表,2020年7月1日,18,第14章 x86PC的中断系统,14.1 8088/86中断 14.1.1 中断源 14.1.2 中断服务程序 14.2 x86PC及中断分配 14.3 中断应用程序,2020年7月1日,18,14.2 x86PC及其中断分配,在x86的256种可能的中断中,有些用于PC外设硬件BIOS,有些被操作系统使用,剩下的由软件编程人员使用。,2020年7月1日,20,14.2 x86PC及其中断分配,中断向量地址表 -表示法1-2,中断向量地址一览
10、表,这些功能可以用中断方式调用,INT n,存取中断向量的DOS功能调用(21H) 设置中断向量 预置:AH=25H AL=中断类型号 DS:DX=中断向量(中断程序入口地址) 执行:INT 21H 取中断向量 预置:AH=35H AL=中断类型号 执行:INT 21H 返回:ES:BX=中断向量(中断程序入口地址),*如何读取/改变中断向量表中的中断程序入口地址(中断向量),例8.4 使用DOS功能调用存取中断向量 MOV AL, N MOV AH, 35H INT 21H PUSH ES PUSH BX PUSH DS MOV AX, SEG INTHAND MOV DS, AX MOV
11、DX, OFFSET INTHAND MOV AL, N MOV AH, 25H INT 21H POP DS POP DX POP DS MOV AL, N MOV AH, 25H INT 21H RET,用户自定义中断程序 INHAND: IRET,保存 原中断向量,设置 新中断向量,恢复 原中断向量,取中断向量 预置:AH=35H AL=中断类型号 执行:INT 21H 返回:ES:BX=中断向量 设置中断向量 预置:AH=25H AL=中断类型号 DS:DX=中断向量 执行:INT 21H,2020年7月1日,25,第14章 x86PC的中断系统,14.1 8088/86中断 14.1
12、.1 中断源 14.1.2 中断服务程序 14.2 x86PC及中断分配 14.3 中断应用程序,2020年7月1日,25,14.3 中断应用程序,本节通过举例说明中断应用程序的编写方法。 例子1.用户自定中断程序设计方法 例子2.利用系统提供的中断的中断程序设计方法,14.3 中断应用程序,例1.用户自定义中断完成AL中的数据显示,中断类型号78H(保留) ;主程序中设置中断向量 MOV AX,seg int78 MOV DS,AX MOV DX,offset int78 MOV AH,25H MOV AL,78H INT 21H ;中断处理程序 int78: ;中断服务功能处理 ;显示AL
13、中的高四位 ;显示AL中的低四位 IRET 参看INTEXP.ASM,14.3 中断应用程序,例2 要求每10秒响铃一次,并显示“The bell is ring!” 要点:如何设计中断处理程序;如何进入中断处理程序,可用资源:系统定时器(中断类型8,每秒中断18.2次) 系统定时器的中断处理程序中,有一条指令INT 1CH,但嵌套调用后BIOS中只有IRET指令。用户可实现完成某些周期性工作,但影响系统时钟,设计中断处理程序 系统定时器中断10* 18.2=182=B6H次,响铃一次,并显示“The bell is ring!” 系统定时器中断中读时钟,如果到10秒,响铃一次,并显示“The
14、 bell is ring!” 如何进入中断处理程序 改变INT 1CH的中断向量,使系统定时器中的嵌套中断指向我们设计的中断处理程序 将我们设计的中断处理程序放在INT 1CH嵌套调用的BIOS处替换掉IRET指令。 BIOS是固件,不可行 在INT 1CH嵌套调用的BIOS中将IRET指令替换为跳转指令,指向我们设计的中断处理程序。要修改编译内核,中断类型1CH作为用户使用的中断类型,可能已被其他功能的程序使用,所以在编写新的临时中断程序时,应做如下工作: 1、在主程序的初始化部分,先保存当前1CH的中断向量,再设置新的中断向量。 2、在主程序结束部分恢复保存的1CH中断向量。,003FF
15、H,除法错,单步,NMI,BIOS,INTn,1ch 4 = 70h,设置中断向量 预置:AH=25H AL=中断类型号 DS:DX=中断向量(中断程序入口地址) 执行:INT 21H 取中断向量 预置:AH=35H AL=中断类型号 执行:INT 21H 返回:ES:BX=中断向量(中断程序入口地址),;* ;eg8-5.asm. ;* .model samll ;- .stack ;- .code ; main program main proc far start: move ax, data mov ds, ax ;save old interrupt vector mov al, 1
16、ch mov ah, 35h int 21h push es push bx ;set new interrupt vector push ds mov dx, offset ring mov ax, seg ring mov ds, ax mov al, 1ch mov ah, 25h int 21h pop ds,in al, 21h and al, 11111110b out 21h, al sti mov di, 20000 deplay: mov si, 30000 deplay1: dec si jnz deplay1 dec di jnz deplay ;restore old
17、interrupt vector pop dx pop ds mov al, 1ch mov ah, 25h int 21h mov ax, 4c00h int 21h main endp,;- ;Procedure ring ;Purpose:ring every 10 seconds when substitued for interrupt 1ch ring proc near push ds push ax push cx push dx mov ax, data mov ds, ax sti ;Siren if it is time for ring dec count jnz exit mov dx, offset msg mov ah, 09h int 21h mov dx, 100 in al, 61h and al, 0fch sound: xor al, 02 out 61h, al mov cx, 1400h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人流手术康复指导-1
- 2026事业单位工勤技能-江苏-江苏计算机文字录入处理员二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-江苏-江苏农机驾驶维修工五级(初级工)历年参考题库含答案详解3套试卷
- 不确定性推理与AI
- 2026事业单位工勤技能-新疆-新疆家禽饲养员五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-新疆-新疆下水道养护工五级(初级工)历年参考题库含答案详解3套试卷
- 2026 年地质灾害监测设备简易识别科普宣传班会
- 消防安全考核试题大全
- 2026年秋季开学高三为梦想而战加油鼓劲课件
- 2026年秋季开学初三备战新学年加油鼓劲课件
- 2025年广元市昭化区招募社会工作服务岗笔试真题
- 五、“生活垃圾的分类回收和利用”宣传海报的制作教学设计初中化学仁爱科普版2024九年级下册-仁爱科普版2024
- 中国空间技术研究院招聘笔试题库2026
- 2026年第八届全国茶业职业技能竞赛(茶叶加工工赛项)理论考试题库(新版)
- (2026版)《全国农业普查条例》解读
- 2026年慢阻肺基层健康管理培训考核试题及答案
- 幼儿园德育工作指南(2025版)
- 2025年成都市第八人民医院招聘真题
- 2026年燃气企业负责人和安全管理人员考试真题及答案
- 2026年校园传染病科学预防与健康守护指南
- 商场超市顾客服务手册
评论
0/150
提交评论