- 1、本文档共73页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
王爽第3版《汇编语言》讲稿_15
《汇编语言》课件
王爽 著-清华大学出版社
制作工具:Microsoft PowerPoint2003
本课件由汇编网()制作提供
第15章 外中断
15.1 接口芯片和端口
15.2 外中断信息
15.3 PC机键盘的处理过程
15.4 编写int 9中断例程
15.5 安装新的int 9中断例程
引言
以前我们讨论的都是CPU对指令的执行。我们知道,CPU 在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。
也就是说,CPU 除了有运算能力外,还要有 I/O( Input/Output ,输入/输出)能力。
15.1 接口芯片和端口
第14 章我们讲过,在PC 系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,CPU 将这些寄存器当作端口来访问。
15.1 接口芯片和端口
外设的输入不直接送入内存和CPU ,而是送入相关的接口芯片的端口中;
CPU 向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设。
15.1 接口芯片和端口
CPU 还可以向外设输出控制命令,而这些控制命令也是先送到相关芯片的端口中,然后再由相关的芯片根据命令对外设实施控制。
可见,CPU 通过端口和外部设备进行联系。
15.2 外中断信息
CPU 在执行完当前指令后,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入。
在PC 系统中,外中断源一共有两类:
1、可屏蔽中断
2、不可屏蔽中断
15.2 外中断信息
可屏蔽中断是CPU 可以不响应的外中断。CPU 是否响应可屏蔽中断,要看标志寄存器的IF 位的设置。
当CPU 检测到可屏蔽中断信息时:
如果IF=1,则CPU 在执行完当前指令后响应中断,引发中断过程;
如果IF=0,则不响应可屏蔽中断。
15.2 外中断信息
我们回忆一下内中断所引发的中断过程:
(1)取中断类型码n;
(2)标志寄存器入栈,IF=0,TF=0;
(3)CS 、IP 入栈;
(4)(IP)=(n*4),(CS)=(n*4+2)
由此转去执行中断处理程序。
15.2 外中断信息
可屏蔽中断所引发的中断过程 ,除在第1步的实现上有所不同外,基本上和内中断的中断过程相同。
因为可屏蔽中断信息来自于CPU外部,中断类型码是通过数据总线送入CPU 的;
而内中断的中断类型码是在CPU内部产生的。
15.2 外中断信息
现在,我们可以解释中断过程中将IF置为0的原因了。将IF置0的原因就是,在进入中断处理程序后,禁止其他的可屏蔽中断。
当然,如果在中断处理程序中需要处理可屏蔽中断,可以用指令将IF 置1 。
15.2 外中断信息
8086CPU 提供的设置IF的指令如下:
sti,用于设置IF=1;
cli,用于设置IF=0。
15.2 外中断信息
不可屏蔽中断是CPU 必须响应的外中断。当CPU 检测到不可屏蔽中断信息时,则在执行完当前指令后,立即响应,引发中断过程。
对于8086CPU 不可屏蔽中断的中断类型码固定为2。所以中断过程中,不需要取中断类型码。
15.2 外中断信息
不可屏蔽中断的中断过程:
1、标志寄存器入栈,IF=0,TF=0;
2、CS、IP入栈;
3、(IP)=(8),(CS)=(0AH)。
15.2 外中断信息
几乎所有由外设引发的外中断,都是可屏蔽中断。当外设有需要处理的事件(比如说键盘输入)发生时,相关芯片向CPU 发出可屏蔽中断信息。
不可屏蔽中断是在系统中有必须处理的紧急情况发生时用来通知CPU 的中断信息。在我们的课程中,主要讨论可屏蔽中断。
15.3 PC机键盘的处理过程
下面我们看一下键盘输入的处理过程,并以此来体会一下PC 机处理外设输入的基本方法。
1、键盘输入
2、引发9号中断
3、执行int 9中断例程
15.3 PC机键盘的处理过程
键盘上的每一个键相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描。
按下一个键时,开关接通,该芯片就产生一个扫描码,扫描码说明了按下的键在键盘上的位置。扫描码被送入主板上的相关接口芯片的寄存器中,该寄存器的端口地址为60H 。
松开按下的键时,也产生一个扫描码,扫描码说明了松开的键在键盘上的位置。松开按键时产生的扫描码也被送入60H 端口中。
15.3 PC机键盘的处理过程
一般将按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。
扫描码长度为一个字节,通码的第7 位为 0 ,断码的第7位为1,即: 断码=通码+80H
比如:g键的通码为22H,断码为a2H。
键盘上部分键的扫描码
15.3 PC机键盘的
文档评论(0)