8087中断请求RAM奇偶错NMII/O通道检查错8086NMI屏蔽寄存器屏蔽位CPUINTR8253定时器012键盘优先级未用3异步通信卡(辅)4I/O异步通信卡(主)通道5硬盘6软盘8259A7并行打印机
8087中断请求 RAM奇偶错 I/O通道检查错 NMI屏蔽寄存器屏蔽位 8253定时器 键盘未用异步通信卡(辅) 异步通信卡(主) 硬盘软盘并行打印机 NMI INTR 01234567 优先级 I/O通道
8088CPU的中断优先权优先级高低内中断(除零,INT指令,断点,INTO指令)非屏蔽中断可屏蔽中断低内中断(单步)当有多个中断源同时产生时,CPU先响应优先权最高的中断源再响应优先级较低的中断源
当有多个中断源同时产生时, CPU先响应优先权最高的中断源, 再响应优先级较低的中断源。 二、8088CPU的中断优先权 优先级 高 低 内中断 ( 除零,INT 指令,断点,INTO指令 ) 非屏蔽中断 可屏蔽中断 低 内中断( 单步 )
二、8088CPU响应中断的过程当中断源产生后:不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后:CPU内部硬件会自动完成下列响应中断的过程:取中断类型号N1当前PSW的内容入栈清IF、TF标志为0A保存现场当前CS的内容入栈当前IP的内容入栈5取中断子程取内存单元(0:N ×4)字内容送IP11入口地址取内存单元(0:NX4+2)字内容送CS此时CS:IP指向中断程序的入口,开始执行中断程序
三、8088CPU响应中断的过程 当中断源产生后, 不论是内中断、非屏蔽中断,还是可屏蔽中断, 只要满足响应条件,在执行完当前指令后, CPU内部硬件会自动完成下列响应中断的过程: ① 取中断类型号N ② 当前PSW的内容入栈 ③ 清IF、TF标志为0 ④ 当前CS的内容入栈 ⑤ 当前IP的内容入栈 ⑥ 取内存单元( 0 : N ×4 )字内容送IP 取中断子程 ⑦ 取内存单元( 0 : N ×4 + 2 )字内容送CS 入口地址 此时CS:IP指向中断程序的入口,开始执行中断程序。 保存现场
三、8086/88的中断响应过程查询中断的顺序,现行指令决定了各种中断源的优先权软件中断软件中断高N除法错中断YNMI指令中断N溢出中断INTR非屏蔽中断N可屏蔽中断低TF=1单步中断N下条指令
三、8086/88的中断响应过程 NMI N 软件中断 INTR TF=1 中断响应周期 读中断类型号 下条指令 现行指令 IF=1 N N N N Y Y Y Y Y 查询中断的顺序, 决定了各种中断源的优先权 软件中断 l除法错中断 l指令中断 l溢出中断 非屏蔽中断 可屏蔽中断 单步中断 高 低
完成当前指令1响应读中断标志入栈中断类型码中断处理顺序内部中断NNMI清除IF和TF执行用户中INTR断服务程序-?弹出IP和CSCS和IP入栈弹出标志执行下一调用中断条指令服务程序继续执行被中断的程序
中断处理顺序 完成当前指令 NMI 内部中断 INTR TF 执行下一 条指令 IF 执行用户中 断服务程序 弹出IP和CS 弹出标志 继续执行被 中断的程序 调用中断 服务程序 CS和IP入栈 清除IF和TF 标志入栈 响应中断 读中断 Y 类型码 N Y N N Y1 0 10