网站大量收购独家精品文档,联系QQ:2885784924

第9章中断程序设计.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章中断程序设计.ppt

辽宁师范大学 计算机与信息技术学院 设问: 本章重点 中断的概念 定制自己的中断 BIOS中断 DOS中断 中断程序应用 9.1 中断的概念 包括: (1)除法错中断(中断类型号 0) 执行除法指令时,若发现除数为0或超过了寄存器所能表达的范围,则立即产生一个类型为0的中断。 (2)溢出中断(中断类型号 4) 若溢出标志OF置1,由中断指令INTO来处理发生溢出的中断操作;若OF为0,则INTO指令不产生中断,CPU继续运行原程序。 3.中断优先级 在80X86系统的中断类型中,优先级是不一样的,CPU按照优先级顺序响应中断。优先级分类如下: 优先级最高:内部中断 非屏蔽中断(NMI) 可屏蔽中断(INTR) 优先级最低:单步中断 9.1.4 中断过程 有几种特殊情况CPU不能响应中断: 3.中断处理 CPU响应中断之后,就转入中断处理子程序执行。中断处理子程序的编写与子程序类似,也要保护现场和恢复现场。中断处理的内容和中断类型的设置要求相同。 4.中断返回 中断子程序的最后一条汇编指令必须是 IRET中断返回指令。该指令的作用是将保存在堆栈中断点的偏移地址和段地址弹出,修改IP和CS寄存器;再把保存在堆栈中的PSW各标志位弹到FLAGS寄存器中,然后返回到被中断的程序去继续执行。 9.2 定制自己的中断 9.2.2 中断的设置 (1)设置中断向量 将在DS:DX中的中断向量写入中断向量表中。 格式:AH=25H AL=中断类型号 DS:DX=中断向量 INT 21H 9.2.3 软件中断的触发与处理 运行结果: 9.2.4 对除0中断的修改 运行结果: 9.3 BIOS中断 BIOS主要有几部分: 系统硬件检测和初始化程序; 内中断的中断处理程序; 硬件中断的中断处理程序; I/O设备及接口控制等功能模块。 常用的I/O输入输出BIOS中断是对键盘、光标、屏幕显示、时钟、打印机等的控制。 练习: 1、将开窗口改为带有哑元的宏。 2、定义置光标功能为带有哑元的宏。 9.3.2 键盘中断INT 16H (1)从键盘读出一个字符 格式:AH=00H INT 16H 返回值:AL=字符ASCII码,AH=扫描码。 功能:从键盘缓冲区队首取出字符送入AX,同时缓冲区后续字符前移。 (2)判断并读出键盘字符 格式:AH=01H INT 16H 返回值:ZF=0,AL=字符ASCII码,AH=扫描码;ZF=1,缓冲区为空。 功能:可从ZF值判断键盘缓冲区中是否有按键字符。 9.3.3 时钟中断INT 1AH BIOS的时钟中断INT 1AH可以对计数器读写,读取和设置时钟。利用此功能,可以编写计时软件。 (1)读取时钟计数器当前值 格式:AH=00H INT 1AH 返回值:CX=计数值高字,DX=计数值低字。 (2)设置时钟计数器 格式:AH=01H CX=计数值高字 DX=计数值低字 INT 1AH 注意:此项操作会修改系统时钟。 9.4 DOS中断 (3)显示一串字符 格式:AH=09H DS:DX=字符串地址 INT 21H 功能:屏幕上显示一串字符,光标跟随字符移动。要求字符串必须以$结尾。 (4)打印一个字符 格式:AH=05H DL=字符 INT 21H 功能:把一个字符送到打印机上打印出来。 9.4.2 键盘功能调用 (6)清除键盘缓冲区并调用 格式:AH=0CH AL=功能号 INT 21H 功能:清除键盘缓冲区的同时,调用键盘输入功能(1、7、8、10功能号)。使用此功能可以在输入一个字符之前将以前输入的字符从缓冲区清除。 9.4.3 日期、时间功能调用 9.5 实例九 中断程序应用 示例9-4 在屏幕右上角显示系统当前的日期和时间。 示例9-5 在屏幕右上角开窗口显示两次读取的时钟计数器当前值和计数差值。 设计思路: (1)利用9-4题的宏库与子程序; (2)用INT 1AH读取时钟计数器,两次读取时间间隔2秒; (3)在屏幕2行50列到6行78列开窗口,草绿底白字。 9.5.3 实验任务 实验目的: 中断程序设计分为对系统中断及功能调用的使用和自己设计中断程序两个层次,要求掌握常用的系统中断及功能调用的用法以及中断程序的设计思路和技巧。并尝试编写一个自己设计的中断程序。 实验内容: 参考示例9-

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档