- 1、本文档共120页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断系统与8259A课件
; 9.1 中断的基本概念
9.2 80x86的中断指令
9.3 中断向量
9.4 系统中断的分类
9.5 8259A中断控制器
9.6 PC/AT的可屏蔽中断
9.7 实模式下的定时中断程序设计;第九章 中断系统;复习:CPU与外设交换数据的方式又几种?
以查询方式为例:;1、中断方式输入数据的过程分析;2、什么是中断?
CPU暂停执行现行程序,转而处理随机事件,处理完毕后再返回被中断的程序继续执行,这一全过程称为中断。;4、具有中断请求功能的输入接口;4、具有中断请求功能的输入接口;5、什么是中断系统?
为实现中断功能而采取的硬件和软件的集合。;中断响应及中断嵌套过程示意图(设B中断的级别高于A);第九章 中断系统;1、开中断指令STI
功能:使标志寄存器中I标志置1,CPU处于开中断状态;
2、关中断指令CLI
功能:使标志寄存器中I标志置0,CPU处于关中断状态;
3、软件中断指令INT n
n为中断类型码,是0~255之间的无符号整数。
功能:无条件转向n型中断服务子程序。
注意:中断类型n必须有定义。
;INT n 指令的执行过程—CPU响应软件中断的过程
① F寄存器?栈(为了保存INT n 之前的F状态)
使F中的T标志置0——禁止单步操作;
使F中的I标志置0——使CPU处于关中断状态;
② 断点地址?栈
先将断点的段地址(CS)?栈;
再将断点的偏移地址(IP)?栈;
③ CPU从存储器4n~4n+3单元取出n型中断的服务程序入口地址?CS : IP,从而转入n型中断服务程序。;4、中断返回指令IRET
功能:
依次从栈顶弹出6个元素?IP,CS,F;
如果栈顶是INT n的中断入口地址,则执行IRET后,返回断点,否则不能返回断点。;第九章 中断系统;每个中断都指定了一个类型码,也称为中断号。
每一种中断对应有一个中断服务程序(Interrupt Service Program ——ISP),也可称为中断服务例程(Interrupt Service Routine ——ISR);
ISR本质上就是为特定中断事件服务的代码,中断发生后,在中断系统的控制下,CPU转向ISR执行,为中断事件服务完毕后,再返回被中断程序继续执行。
ISR存放在内存中,每个ISR程序段的起始地址被称为ISR的入口地址。;1、什么是中断向量?
中断向量是实模式下,中断服务子程序的入口地址。它由两部分组成:
中断服务程序所在代码段的段基址,2字节;
中断服务程序所在代码段的段内偏移地址,2字节;
2、中断向量表
中断类型码通过一个地址指针表与中断服务子程序的入口地址相联系。
实模式下,该表被称为中断向量表;
保护模式下,该表被称为中断描述符表;;3、中断向量表的设置
80x86系统规定,在实模式下,中断向量表需设置在系统RAM最低端1KB单元空间内。即00000H~003FFH。
如果每个中断向量占用4字节,共可有256个中断。
RAM最低1KB空间内,并不是全部作为中断向量表。;4、中断向量表的表地址与中断类型的关系;5、中断向量的转向作用──CPU响应软件中断的过程;6、中断向量表的初始化
由BIOS设计的中断服务程序(如INT 16H,INT 10H等)其中断向量在加电时由BIOS负责写入中断向量表;
由DOS设计的中断服务程序(如 INT 21H)其中断向量是在启动DOS时,由DOS负责写入中断向量表;
用户开发的中断服务程序,由用户程序写入其中断向量。;问题:
用户如何向中断向量表中写入中断向量?;方法一:用户自己编写程序填写中断向量
CLI ;关闭所有中断
PUSH DS ;保护原DS
MOV AX, 0000H
MOV DS, AX ;DS指向内存最低端
MOV BX, 4*n ;BX指向入口地址
MOV AX, OFFSET SERVICE
MOV [BX], AX ;先填入口偏移地址
MOV AX, SEG SERVICE
MOV [BX+2], AX ;后填入口段地址
POP DS ;恢复原DS
STI ;重新开放中断;方法二:使用DOS功能调用读写中断向量
[INT 21H的35H子功能]
功能: 读出n型中断向量
入口: AL=中断类型码n
出口: ES:BX=n型中断向量
[INT 21H的25H子功能]
功能: 写入n型中断向量
入口: DS=中断服务程序所在代码段的段基址
DX=中断服务程序入口的偏移地址
出口: 无;例:把用户程序中名为”TIMER”的中断服务程序的入口地址写入INT 1CH中断向量处。;例:把用户程序中名为 “TIMER”的中断服务程序的入口
文档评论(0)