8259A 操作命令字
在初始化命令字写入8259A之后,8259A就准备接收中断请求输入信号了
在8259A工作期间,CPU可以随时通过操作命令字使8259A完成各种不同的工作方式
8259A有三种操作命令字:OCW1、OCW2和OCW3
在写入时,它们与初始化命令字不同,它们不是按一定的顺序写入,而是按设计者的要求写入
8259A编程注意事项
不同8259A的I/O端口地址不同
严格按初始化顺序
8259A级联时,每个8259A均必须有完整的初始化过程,只是端口地址和部分参数不同
全嵌套方式时,初始IR优先级IR0最高
对于中断服务程序,要注意:
使用正确的中断号
中断服务程序入口的正确设置
中断程序执行时间的正确估计
中断的打开与关闭
中断结束处理及返回

7.5 8088的中断方式

8088可以处理256种不同类型的中断,类型号为0~255
8088的中断分为内部中断和外部中断两大类
外部中断:由CPU外部引起的中断,需要外设产生一个信号来通知CPU,包括非屏蔽中断NMI和可屏蔽中断INTR
1. 可屏蔽中断
中断请求:多个中断请求的排队和判优由中断控制器完成,产生的有无中断请求的信号送到CPU的INTR引脚。
中断类型号:通过数据总线送到CPU中。
EFLAGS寄存器的IF位影响CPU对中断请求的响应。
属性:硬件、可屏蔽、向量。
2.非屏蔽中断
中断请求:中断请求的信号送到CPU的NMI引脚。
中断类型号:固定为2。
CPU不需要进行中断识别,直接处理中断。
属性:硬件、不可屏蔽、向量。
NMI由0跳变到1以后要维持至少4个连续的处理器时钟周期的高电平才被识别。
NMI由1跳变到0以后要维持至少4个连续的处理器时钟周期的低电平,新的NMI中断才能被识别。
内部中断
内部中断:由CPU状态的改变或执行中断指令而产生的中断,它不受IF的控制,主要用于功能调用、程序调试和意外情况处理
属性:软件、不可屏蔽、向量。
中断请求:指令执行中或程序调用产生。
中断类型号:CPU规定或指令给出。
内部中断形式
内部中断包括四类:除法错中断、单步中断、溢出中断、软件中断
CPU专用中断:溢出(O)、单步(1)、断点中断(3)。
BIOS中断:I/O设备控制、实用服务、特殊中断、专用参数中断。
DOS中断:公开/未公开、可调用、系统功能。
自由中断:未定义(20H~3FH中未使用的中断)。
CPU不需要进行中断识别,直接处理中断。
失效:错误在指令完成前,错误指令的CS:EIP压栈。该指令会重做。
陷阱:错误在指令完成后,错误指令下一指令的CS:EIP压栈。
中止:不保存,重启机器
内部中断与外部中断的主要区别
内部中断与外部中断的主要区别:
1.外部中断需要从数据总线上读取中断类型码,而内部中断的中断类型码是指令的一部分
2.外部中断受中断允许触发器IF的控制,而内部中断不受IF的控制
3.内部中断的优先级别比外部中断要高(除单步中断以外)
中断源的优先级别由高到低顺序:内部中断、NMI、INTR、单步中断