3、中断系统编程要求
 主程序:
  设置中断向量表
  初始化堆栈指针
  初始化8259A
  置中断允许STI
 中断服务程序
  将中断服务程序要用到的工作寄存器内容压入堆栈(PUSH AX等)
  中断服务程序主体
  弹出压入堆栈的工作寄存器内容(POP AX 等)
  给8259A送EOI命令(必要时可提前)
  设置中断允许STI(必要时可提前)
  中断返回IRET
4、CPU中断应答过程(对用户透明)
  满足中断响应条件以后,CPU进入中断应答周期,发出2个连续的INTA#信号(8086)。
 在第一个INTA#周期
  8259A置ISRi=1,IRRi=0
 在第二个INTA#周期
  PUSH Flag
  LET TEMP = TF ;CLR IF,TF
  PUSH CS,IP
 读类型码
  (IP)=(TYPE*4+1):(TYPE*4+0)
  (CS)=(TYPE*4+3):(TYPE*4+2)
5、优先级及中断嵌套

  • 多个中断同时发生时优先级高的中断首先被响应
  • INTR中断、单步中断是否能中断其他正在服务的中断处理程序,得到响应,取决于IF和TF状态
  • 8259A中断嵌套的方式由编程决定
  • 中断响应过程(INTA#周期)不会发生中断嵌套