微机原理与接口技术——中断系统
文章目录
一、中断指令概念
要求:掌握CPU在执行中断指令后,会执行哪些操作
前言:在掌握这些操作之前,我们必须先了解几个名词
1、中断类型码
为了区别各种不同的中断,微机系统给每一个中断分配了一个中断号n,即中断类型码,其取值范围是0~255。
微机系统可以处理256种中断,在这256个中断中,imtel在它各种微处理器中都保留了前32个(031)为系统所专用,后224个可由用户设定。
2、中断向量
定义:实模式下,进入中断子程序的入口地址,再准确一点就是,指向中断服务子程序的第一条指令
它由2部分组成:
- 服务程序所在代码段的段基址:2个字节
- 服务程序入口的偏移地址:2个字节‘
3、中断向量表
解释:中断向量的地址怎么找?4*n,n为字段类型码,(就是在类型码后面加两个零)。
简述接收到中断指令后操作
1、利用4*n,即利用中断类型码找到中断向量的第一个单元地址,一个中断向量占有四个字节。
2、找到的中断向量,即为中断服务子程序的入口地址,取出,注意先取出取出的IP,是偏移地址,后取出两个单元是DS,是段基址。(这里要尤其注意)
3、取出中断向量的入口地址,即可找到中断服务子程序,执行。
二、8086中断指令
开中断指令:STI
功能:使F寄存器中I标志置1,CPU处于开中断状态。
关中断指令:CLI
功能:使得F寄存器中I标志置0,CPU处于关中断状态。
软件中断指令:INT n
n为中断类型码,n为0~255之间有定义的无符号整数。
功能:无条件转向n型中断服务子程序。
中断返回指令 IRET
功能:依次从栈顶弹出6个元素给IP,CS,F。如果栈顶是INT n的断口地址,则执行IRET,返回断点,否则不能。
三、微机系统中断分类
那么如何区分?
区别点:
- 软件中断:(INT n)
- 可屏蔽中断(INTR):(08-0F / 70-77)
- 非屏蔽中断(NMI):02H
- 异常
四、CPU响应可屏蔽与非屏蔽中断的条件
响应可屏蔽中断条件
- INTR引脚有中断请求,NMI引脚没有中断请求,系统没有DMA请求;
- CPU当前指令执行完毕;
- CPU处于开中断状态,即标志寄存器的中断允许标志置1.
响应非屏蔽中断条件
- NMI引脚有中断请求,系统没有DMA请求;
- CPU当前指令执行完毕
上面两种响应条件,大家有没有发现第一条都是先看看其他的是否有中断请求,这是为什么?
原因:中断请求优先级 DMA>NMI>INTR
五、8259A结构
1片8259A中断控制器可以管理8级中断;
级联:
这里注意:
屏蔽:用OR运算符,该位置1,其他置0
开放:用AND运算符,该位置0,其它为0
六、硬件中断与软件中断
两者区别:
- 中断的引发方式不同
- CPU获取中断类型码的方式不同(分为8259和INT n)
- CPU响应的条件不同
- 中断处理程序的结束方式不同
七、微机系统可屏蔽硬件中断
1、系统分配的8259口地址
2、中断结束命令
3、日时钟中断
ICH型
若日时钟中断定义位1CH型,服务程序结束前不需要向主8259A发送结束命令。
08H
若用户定时中断位08H型,服务程序前需要先向主8059A发送中断结束命令。
MOV AL,20H
OUT 20H,AL
4、用户中断
0AH型
若用户中断定义位0A型,服务程序结束后只向主8259A送结束命令。
71H型
若用户中断定义位71型,服务程序结束后分别向主、从8259A各送结束命令。
MOV AL,20H
OUT 20H,AL
OUT 0A0H,AL
5、用户中断图解
用户中断请求从ISA总线B4端子(IRQ 9)引入,经过主8259,从8259二级中断管理,最后由主8259向cpu提中断。
注意:只有从8259 IMR1置0,主8259IMR2置0,其中断请求方能送到CPU。
6、应用编程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!