069第十五外中断01.ppt

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

零基础入门学习汇编语言 作者:小甲鱼 第15章 外中断 15.1 接口芯片和端口 15.2 外中断信息 15.3 PC机键盘的处理过程 15.4 编写int 9中断例程 15.5 安装新的int 9中断例程 引言 以前我们讨论的都是CPU对指令的执行。我们知道,CPU 在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。 也就是说,CPU 除了有运算能力外,还要有 I/O( Input/Output ,输入/输出)能力。 接口芯片和端口 第 14 章我们讲过,在PC 系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,CPU 将这些寄存器当作端口来访问。 外设的输入不直接送入内存和CPU ,而是送入相关的接口芯片的端口中; CPU 向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设。 接口芯片和端口 CPU 还可以向外设输出控制命令,而这些控制命令也是先送到相关芯片的端口中,然后再由相关的芯片根据命令对外设实施控制。 可见,CPU 通过端口和外部设备进行联系。 CPU 在执行完当前指令后,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入。 外中断信息 在PC 系统中,外中断源一共有两类: 1、可屏蔽中断 2、不可屏蔽中断 可屏蔽中断是CPU 可以不响应的外中断。CPU 是否响应可屏蔽中断,要看标志寄存器的IF 位的设置。 外中断信息 当CPU 检测到可屏蔽中断信息时: 如果IF=1,则CPU 在执行完当前指令后响应中断,引发中断过程; 如果IF=0,则不响应可屏蔽中断。 我们回忆一下内中断所引发的中断过程: 外中断信息 我们回忆一下内中断所引发的中断过程: (1)取中断类型码n; (2)标志寄存器入栈,IF=0,TF=0; (3)CS 、IP 入栈; (4)(IP)=(n*4),(CS)=(n*4+2) 由此转去执行中断处理程序。 外中断信息 可屏蔽中断所引发的中断过程 ,除在第一步的实现上有所不同外,基本上和内中断的中断过程相同。 因为可屏蔽中断信息来自于CPU外部,中断类型码是通过数据总线送入CPU 的; 而内中断的中断类型码是在CPU内部产生的。 外中断信息 现在,我们可以解释中断过程中将IF置为0的原因了。将IF置0的原因就是,在进入中断处理程序后,禁止其他的可屏蔽中断。 当然,如果在中断处理程序中需要处理可屏蔽中断,可以用指令将IF 置1 。 8086CPU 提供的设置IF的指令如下: sti,用于设置IF=1; cli,用于设置IF=0。 外中断信息 不可屏蔽中断是CPU 必须响应的外中断。当CPU 检测到不可屏蔽中断信息时,则在执行完当前指令后,立即响应,引发中断过程。 对于8086CPU 不可屏蔽中断的中断类型码固定为2。所以中断过程中,不需要取中断类型码。 外中断信息 不可屏蔽中断的中断过程: 1、标志寄存器入栈,IF=0,TF=0; 2、CS、IP入栈; 3、(IP)=(8),(CS)=(0AH)。 外中断信息 几乎所有由外设引发的外中断,都是可屏蔽中断。当外设有需要处理的事件(比如说键盘输入)发生时,相关芯片向CPU 发出可屏蔽中断信息。 不可屏蔽中断是在系统中有必须处理的紧急情况发生时用来通知CPU 的中断信息。在我们的课程中,主要讨论可屏蔽中断。 PC机键盘的处理过程 下面我们看一下键盘输入的处理过程,并以此来体会一下PC 机处理外设输入的基本方法。 1、键盘输入 2、引发9号中断 3、执行int 9中断例程 PC机键盘的处理过程 键盘上的每一个键相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描。 按下一个键时,开关接通,该芯片就产生一个扫描码,扫描码说明了按下的键在键盘上的位置。扫描码被送入主板上的相关接口芯片的寄存器中,该寄存器的端口地址为60H 。 松开按下的键时,也产生一个扫描码,扫描码说明了松开的键在键盘上的位置。松开按键时产生的扫描码也被送入60H 端口中。 PC机键盘的处理过程 一般将按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。 扫描码长度为一个字节,通码的第 7 位为 0 ,断码的第7位为1,即: 断码 = 通码+80H 比如:g键的通码为22H,断码为a2H。 键盘上部分键的扫描码 PC机键盘的处理过程 BIOS 提供了int 9中断例程,用来进行基木的键盘输入处理,主要的工作如下: (1)读出60H 端口中的扫描码; (2)如果是字符键的扫描码,将该扫描码和它所对应的字符码( 即 ASCII码)送入内存中的 BIOS 键盘缓冲区; P

文档评论(0)

mhk8089 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档