@2017libin
2019-06-29T15:59:59.000000Z
字数 602
阅读 108
中断控制接口
汇编
1. 8088中断系统
- 内部中断:内部程序出现异常产生的程序中断。例如,除法中断,指令中断(INT),溢出中断,单步中断。
- 外部中断:由外设提出来的中断请求而产生的中断。例如,非屏蔽中断,可屏蔽中断。
- 中断优先级由高到低:软件中断,非屏蔽中断,可屏蔽中断,单步中断。
- 中断向量的物理地址 = 中断向量号4
- 中断向量表的地址范围:000h~3ffh,每个中断向量占用4个字节,一共有256个中断向量。
2. 8259A中断控制器
- 工作方式:13种
- 控制字:7种
- 修改工作方式的方法:5种
- 内部主要的三种寄存器:中断请求寄存器IRR(1表示有请求),中断服务寄存器ISR(1表示正在服务),中断允许寄存器IMR(1表示屏蔽)
- 级联:两片可以扩展可以接收15个中断请求,其中从片的INT连接主片的,
3. 编写中断程序的过程
- 主程序:
- 初始化主从片控口内容
- 填表,也就是将中断向量写入中断向量表
- 开总中断STI和分中断IMR
- 设置入口参数
- 等待中断申请
- 响应中断请求,根据中断向量号查找中断向量,从而转去中断服务子程序
- 中断服务子程序:
- 开中断,执行STI使IF=1(调用中断服务子程序的时候IF复位)
- 保护现场,将寄存器内容压入堆栈
- CPU向主从片发出EOI命令(将ISR中对应位复位)
- 处理入口参数
- 发出IN,OUT命令(外部设备中断时使用)
- 恢复现场,将原有寄存器内容从堆栈中弹出
- IRET命令返回主存
4. 中断的级联:PPT上面有图