本节继续中断数据传送方式
一、中断响应过程
1.中断响应过程
响应中断时硬件自动完成的工作为:
1.取得中断类型号
2.把标志寄存器内容压栈
3.禁止外部中断和单步中断
4.把下一条指令地址压栈(CS和IP)
5.从中断类型号取出中断处理程序入口地址
6.转入中断处理程序
2.中断返回指令利用堆栈返回指令从堆栈中弹出返回地址和原标志寄存器值。
指令格式: IRET
操作为:
IP <—[SP]
SP <—SP+2
CS <—[SP]
SP <—SP+2
FLAGS <—[SP]
SP <—SP+2
中断处理中一般不允许产生新的中断。
二、外部中断
外部的某个事件引起的中断称为外部中断,如输入输出等。
INTR 接受可屏蔽中断请求,
NMI接受非屏蔽中断请求。
可屏蔽中断:
键盘,硬盘等外设中断请求通过中断控制器8259A传送给可屏蔽中断请求线INTR,中断控制器8259A共能接受8个独立的中断请求信号,从IRQ0至IRQ7
8259A包含两个寄存器,中断屏蔽寄存器为21H,它的8位对应控制8个外设,通过设置寄存器的某位为0或为1来允许或禁止传递过来的IRQ中断请求信号 。中断屏蔽寄存器的内容称为中断屏蔽字。
中断控制器:
0 ------- 定时器
1 ------- 键盘
2 ------- 保留
3 ------- 串行1
4 ------- 串行2
5 ------- 硬盘
6 ------- 软盘
7 ------- 打印机
只有在IF为1时,CPU才响应由INTR传入的中断请求。IF为1时,称为开中断,CF为0时,称为关中断。
当某位为0时,允许该位控制的外设中断请求。