第八章输入输出和中断程序设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章输入输出和中断程序设计

第十一章 8086的中断系统与系统功能调用 1.教学目的:掌握实模式下的中断程序设计的方法 2.教学要求: ①熟悉内部中断和外部中断,理解中断向量表的安排。 ②掌握中断请求、中断判优、中断响应、中断处理和中断返回五个过程的原理。 ③熟悉内部中断和外部中断,理解中断向量表的安排。 ④掌握中断处理程序的设计 ⑤掌握设置和获取中断向量的方法 ⑥熟悉BIOS中断调用概念和调用方法 ⑦熟悉DOS中断调用概念和调用方法 3.教学重点: ①中断处理程序的设计 4.掌握难点: ①中断处理程序的设计 5.教学进程安排:P207~P246 6.教学方法: 课堂讲授 7.教学内容摘要 11.1 中断传送 11.1.1 中断与中断源 1.中断 2.中断源 11.1.2 中断分类 1. 外部中断 2. 内部中断 ⑴由中断指令INT引起的中断 ⑵处理CPU某些错误的中断 ⑶调试程序(DEBUG)设置的中断 ①单步中断 ②断点中断 4.80386~Pentium处理机异常中断 (1)失效 (2)陷阶 (3)中止 11.1.3 中断向量表 中断操作的5个步骤: 1.取中断类型号; 2.计算中断向量地址; 3.取中断向量,偏移地址送IP,段地址送CS; 4.转入中断处理程序; 5.中断返回到INT指令的下一条指令。 图11.5 中断向量表 11.1.4 中断响应过程 中断发生时,中断硬件机构自动完成的动作: 1.取中断类型号N; 2.标志寄存器(PSW)内容压栈; 3.当前代码段寄存器(CS)内容压栈; 4.当前指令指引(IP)内容压栈; 5.禁止外部中断和单步中断(置IF=0,TF=0); 6.从中断向量表中取4*n的字内容送IP,取4*n+2的字内客送CS; 7.转中断处理程序。 11.1.5 中断优先级与中断嵌套 1. 中断优先级 优先级从高到低的次序为: 优先级高 非屏蔽中断(NMI) 内部中断 可屏蔽中断(INTR) 优先级低 单步中断 2. 中断嵌套 11.1.6 中断指令 1. 软中断指令INT 指令格式:INT n 指令功能:转到相应中断处理程序执行,n为中断类型编号 2. 中断返回指令IRET 指令格式:IRET 指令功能:从中断服务程序返回主程序,主要是恢复中断前的CS、IP和FR的内容。 11.2 中断处理程序设计 利用软中断指令INT,可以进入系统的各个中断处理程序中去。因此,用户程序可以通过INT指令使用系统程序提供的中断功能,同时可以利用中断向量表中保留的中断类型号,编写自己所需的中断处理程序。对此本节将做详细介绍。 11.2.1 中断处理程序结构 1. 外中断处理程序 (1)保护现场:保护通用寄存器内容和除CS之外段寄存器的内容,保护方法一般是压栈; (2)尽快完成中断处理,以免影响其他外设中断请求; (3)恢复现场: (4)中断返回,用IRET指令返回。 2. 软中断处理程序 ⑴考虑切换堆栈 ⑵及时开中断 ⑶应该保护现场 ⑷完成中断处理 ⑸恢复现场 ⑹堆栈切换 ⑺一般利用IRET指令实现中断返回 11.2.2 设置和获取中断向量 1. 设置中断向量 (1)直接写入法 (2)使用DOS调用法。 【例11-3】使用直接写入法设置中断向量。 【例11-4】使用DOS功能调用设置中断向量。 11.2.3 中断程序设计举例 【例11-5】编写输出字符串“EXAMPLE FOR INT”的中断处理程序,设中断号为5。 【例11-6】编写一个中断处理程序,要求在主程序运行过程中,每隔10秒响铃一次,同时在屏幕上显示出信息“THE BELL IS RING!” 11.3 BIOS中断调用 11.3.1 BIOS中断调用概述 1.图11.7是用户程序和操作系统关系示意图, 图11.7 用户程序和操作系统关系示意图 2.在下列情况下可考虑使用BIOS中断: ⑴有些功能DOS没有提供,但BIOS提供了: ⑵有些场合无法使用DOS功能调用; ⑶其他原因。 11.3.2 BIOS中断调用方法 1. BIOS调用的基本操作 ⑴设置分功能号 ⑵置入口参数 ⑶使用中断语句INT n ⑷分析出口参数 2. 键盘输入功能调用 BIOS中断16H为键盘输入。16H号中断有三个功能,功能号要求放在AH中,具体功能见表11-3。 表11-3 BIOS键盘中断(INT 16H) AH 功 能 返 回 参 数 0 从键盘读一字符 AL=字符码中 AH=扫描码 1 读键盘缓冲区的字符 ZF=0 AL=字符码 ZF=l 缓冲区空 AH=扫描码 2 取键盘状态字节 AL=键盘状态字节 【例11-7】从键盘读入0~9任一数,根据不同数显示不同的字符串。要求用BIOS中断来接收键盘输入 3. BIOS显示功

文档评论(0)

zhanghc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档