- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编-第八章2课件
第8章 输入/输出与中断 ;8.1 输入/输出 ;8.2 80x86的中断系统 ;3. 中断向量与中断向量表
每种中断都有一个与之对应的中断服务程序。
在实模式下,将中断服务程序的入口地址称作中断向量,
存放256个中断向量的内存区域称为中断向量表。
每个中断向量占4个字节,用32位分段地址来描述。
中断向量表位于内存地址00000H ~ 003FFH,共1KB(256*4B)。
对于中断号n,中断向量所在地址为n ~ 4n+3。例如,0号中断的向量位于地址00000H,1号中断的向量位于地址00004H,等等。
中断向量表在系统复位时初始化。
;
4. 中断响应
当中断发生时,由硬件自动完成下列工作:
(1)标志寄存器FLAGS进栈。.
(2)置IF = 0,TF = 0。
(3)返回地址(CS:IP)进栈。
(4)根据中断号n,从地址0:n×4取出4字节的中断向量,低字送IP,高字送CS。
(5)转去执行中断向量所指的中断服务程序。;8.2.2 中断指令 ;3. INT与CALL的主要区别
CALL主要用来调用应用程序中的过程,而INT则用来调用系统服务程序。
过程可以有任意多个,而80x86系统最多只支持256个中断服务程序。
对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。
INT总是段间调用。
INT将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈。
;8.2.3 中断分类 ;2.硬件中断、异常和陷入的区别
硬件中断与当前指令的执行无关,通常是由外部事件(如I/O设备的数据传送请求、时钟中断等)所引起的,它的发生与指令的执行是异步的。
异常与陷入是由指令的执行而引起的同步事件,与当前指令密切相关。其中,陷入是程序员预期要执行的处理程序,即INT指令。
硬件中断或异常的服务程序是由硬件或异常条件自动触发的,不应在程序中以INT指令直接调用,如INT 9。
3.可屏蔽中断INTR
(1)定时器中断:INT 8
系统主板包含一个定时器芯片(如8254),约每55毫秒(1/18.2秒)产生一次中断。
(2)键盘中断:INT 9
对于键盘的每个按键动作(按下与释放),都会触发键盘中断。
;4. 中断控制器与CPU的通信端口
中断控制器通过端口20H和21H(用于IRQ 0 ~ 7)以??0A0H和0A1H(用于IRQ 8 ~ 15)与CPU通信。
其中,端口20H与0A0H对应于中断命令寄存器,端口21H与0A1H 对应于中断屏蔽寄存器。
5. 发送中断结束命令的方法
向中断命令寄存器输出字节20H。如下所示。
mov al, 20h
out 20h, al ; 对于IRQ 8 ~ 15,使用端口0A0H;6. 禁止/允许相应的硬件中断的方法
中断屏蔽寄存器的8位对应8个硬件中断源,
其中,端口21H的第0 ~ 7位对应IRQ0 ~ IRQ7,端口0A1H的第0 ~ 7位对应IRQ8 ~ IRQ15。
通过设置某位为1/0,以禁止/允许相应的硬件中断。
7. CPU对可屏蔽中断的响应条件
该设备的中断请求未被屏蔽,即相应的中断屏蔽位为0。
CPU允许中断,即IF=1。
?;8.3 DOS与BIOS服务 ;8.4 DOS环境下的可执行程序 ;8.4.2 .EXE文件与.COM文件 ;8.5 中断服务程序设计 ;8.5.2 驻留程序设计 ;8.5.3 键盘程序设计 ;3. 与键盘有关的BIOS数据:段地址为40H
键盘缓冲区:地址为40:1EH
变换键状态字节:地址为40:17H
4. 键盘硬件接口
端口64H:读端口64H,可获取主板上键盘微控制器的状态字节。
端口60H:保存键盘发送给CPU的扫描码或应答数据。
5. 实例
;本章小结
文档评论(0)