1、中断控制器的框架图
2、中断控制器的端口
当A0是0时芯片的端口是0x20和0xA0(从芯片),当A0是1时端口是0x21和0xA1,
3、ICW1
ICW1在linux0.11用于设置多个8259连用
mov al,11h ;// 11 表示初始化命令开始,是ICW1 命令字,表示边
;// 沿触发、多片8259 级连、最后要发送ICW4 命令字。
out 20h,al ;// 发送到8259A 主芯片。
4、ICW2
linux0.11 ICW2主要用于设置中断号的高5位,
mov al,20h ;// start of hardware int's (20)
out 21h,al ;// 送主芯片ICW2 命令字,起始中断号,要送奇地址。
dw 00ebh,00ebh
mov al,28h ;// start of hardware int's 2 (28)
out 0A1h,al ;// 送从芯片ICW2 命令字,从芯片的起始中断号。
5、ICW3
linux0.11 主要用于设置从片与主片的IR2链接
mov al,04h ;// 8259-1 is master
out 21h,al ;// 送主芯片ICW3 命令字,主芯片的IR2 连从芯片INT。
dw 00ebh,00ebh ;// 参见代码列表后的说明。
mov al,02h ;// 8259-2 is slave
out 0A1h,al ;// 送从芯片ICW3 命令字,表示从芯片的INT 连到主芯
;// 片的IR2 引脚上。
6、ICW4
linux0.11 主要设置中断用于8086
mov al,01h ;// 8086 mode for both
out 21h,al ;// 送主芯片ICW4 命令字。8086 模式;普通EOI 方式,
;// 需发送指令来复位。初始化结束,芯片就绪。