电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

汇编语言课件第14章中断

  • 资源ID:137515200       资源大小:593KB        全文页数:33页
  • 资源格式: PPT        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

汇编语言课件第14章中断

2020年7月8日,1,2020年7月8日,1,2020年7月8日,1,2020年7月8日,1,2020年7月8日,1,2020年7月8日,1,第14章 x86PC的中断系统,*,1,DEC HEX BIN14 0E 00001110,汇编语言与接口技术,2020年7月8日,2,第14章 x86PC的中断系统,学习本章后: 1、明确中断的概念 2、会处理中断 3、会管理和应用中断服务程序 4、会编写中断应用程序,2020年7月8日,3,第14章 x86PC的中断系统,本章的主要内容: 14.1 8088/86中断 14.1.1 中断源 14.1.2 中断服务程序 14.2 x86PC及中断分配 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,2020年7月8日,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 中断源(续) 硬件中断由外部硬件产生,也称外部中断 硬件中断分两类: 非屏蔽中断(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可编程中断控制器芯片,使得扩展中断数目的工作变得很容易。,14.1 8088/86中断,2020年7月8日,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.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(rotate), 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的内部中断 调试程序(DEBUG)设置的中断 单步中断:标志位TF=1时,中断类型号=1 断点中断:将程序分段,每段设置一个断点(INT 3),中断类型号=3 软件中断不受中断屏蔽标志IF影响,14.1 8088/86中断,14.1.2 中断服务程序 每个中断都有一个相关的程序。发生中断时,要执行该程序完成特定的任务,这个程序称为中断服务程序。 中断发生时,CPU自动执行中断服务程序。 如何找到中断服务程序?,14.1.2 中断服务程序,x86有256种类型的中断 每种中断有一个中断类型号,类型号 0-FFH 每种类型中断都由相应的中断处理程序处理 中断向量表 各类型中断处理程序的入口地址表 在存储器中, 1KB(00000H-003FFH) 每类型中断向量占4字节,对应中断处理程序入口CS、IP值 每类中断向量表地址=4中断类型号n,中断向量表,2020年7月8日,18,第14章 x86PC的中断系统,14.1 8088/86中断 14.1.1 中断源 14.1.2 中断服务程序 14.2 x86PC及中断分配 14.3 中断应用程序,2020年7月8日,18,14.2 x86PC及其中断分配,在x86的256种可能的中断中,有些用于PC外设硬件BIOS,有些被操作系统使用,剩下的由软件编程人员使用。,2020年7月8日,20,14.2 x86PC及其中断分配,中断向量地址表 -表示法1-2,中断向量地址一览表,这些功能可以用中断方式调用,INT n,存取中断向量的DOS功能调用(21H) 设置中断向量 预置:AH=25H AL=中断类型号 DS:DX=中断向量(中断程序入口地址) 执行:INT 21H 取中断向量 预置:AH=35H AL=中断类型号 执行:INT 21H 返回:ES:BX=中断向量(中断程序入口地址),*如何读取/改变中断向量表中的中断程序入口地址(中断向量),例8.4 使用DOS功能调用存取中断向量 MOVAL,N MOVAH,35H INT21H PUSHES PUSHBX PUSHDS MOVAX,SEG INTHAND MOVDS,AX MOVDX,OFFSET INTHAND MOVAL,N MOVAH,25H INT21H POPDS POPDX POPDS MOVAL,N MOVAH,25H INT21H RET,用户自定义中断程序 INHAND: IRET,保存 原中断向量,设置 新中断向量,恢复 原中断向量,取中断向量 预置:AH=35H AL=中断类型号 执行:INT 21H 返回:ES:BX=中断向量 设置中断向量 预置:AH=25H AL=中断类型号 DS:DX=中断向量 执行:INT 21H,2020年7月8日,25,第14章 x86PC的中断系统,14.1 8088/86中断 14.1.1 中断源 14.1.2 中断服务程序 14.2 x86PC及中断分配 14.3 中断应用程序,2020年7月8日,25,14.3 中断应用程序,本节通过举例说明中断应用程序的编写方法。 例子1.用户自定中断程序设计方法 例子2.利用系统提供的中断的中断程序设计方法,14.3 中断应用程序,例1.用户自定义中断完成AL中的数据显示,中断类型号78H(保留) ;主程序中设置中断向量 MOVAX,seg int78 MOVDS,AX MOVDX,offset int78 MOVAH,25H MOV AL,78H INT 21H ;中断处理程序 int78: ;中断服务功能处理 ;显示AL中的高四位 ;显示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 bell is ring!” 如何进入中断处理程序 改变INT 1CH的中断向量,使系统定时器中的嵌套中断指向我们设计的中断处理程序 将我们设计的中断处理程序放在INT 1CH嵌套调用的BIOS处替换掉IRET指令。 BIOS是固件,不可行 在INT 1CH嵌套调用的BIOS中将IRET指令替换为跳转指令,指向我们设计的中断处理程序。要修改编译内核,中断类型1CH作为用户使用的中断类型,可能已被其他功能的程序使用,所以在编写新的临时中断程序时,应做如下工作: 1、在主程序的初始化部分,先保存当前1CH的中断向量,再设置新的中断向量。 2、在主程序结束部分恢复保存的1CH中断向量。,003FFH,除法错,单步,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 mainprocfar start:moveax, data movds, ax ;save old interrupt vector moval, 1ch movah, 35h int21h pushes pushbx ;set new interrupt vector pushds movdx, offset ring movax, seg ring movds, ax moval, 1ch movah, 25h int21h popds,in al, 21h andal, 11111110b out21h, al sti movdi, 20000 deplay:movsi, 30000 deplay1:decsi jnzdeplay1 decdi jnzdeplay ;restore old interrupt vector

注意事项

本文(汇编语言课件第14章中断)为本站会员(我***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.