最早的基于8088微处理器的PC使用一片8259A作为中断控制器管理8级中断,但后来硬件的发展使得8级中断不再够用,所以基于80286微处理器的PC/AT改用两片8259A级联作为中断控制器管理15级中断。在PC/AT机中,从8259A的INT端连接在主8259A的IR2,主8259A使用端口地址20H和21H,从8259A使用端口地址A0H和A1H(见图6-13)。
图6-13 80286微机系统中的可屏蔽中断硬件结构
在PC/AT中,两片8259A均采用固定优先级方式管理中断源。由于从8259A的INT输出连接到主8259A的IR2,故8259A管理下15个中断源的优先级从高到低依次为主IR0,主IR1,从IR0~IR7,主IR3~IR7,这些中断源根据其连接到主/从8259A芯片上IRi输入端的位置而被命名为IRQ0、IRQ1、IRQ8~IRQ15和IRQ3~IRQ7。其中,IRQ0、IRQ1、IRQ8和IRQ13被主板所占用,其余IRQi被连接到ISA总线上,由ISA扩展卡使用。这15个中断源的分配如图6-14所示。
图6-14 80286微机系统中的可屏蔽中断硬件结构(www.xing528.com)
由于PC/AT微机系统中一般最多只连接一台并口打印机,所以IRQ5一般不会被使用在连接第二个并行接口,而是用于连接其他硬件中断源。
PC/AT的两片8259A均使用一般EOI方式结束中断,也就是说,主8259A属下的中断源的服务程序必须在执行IRET之前通过向20H端口写入一个20H中断结束命令字,对于从8259A属下的中断源的服务程序,除了向A0H端口写入一个20H以向从片发出中断结束命令之外,还要向20H端口写入一个20H,以向主片发出中断结束命令。
用户中断IRQ9是微机系统为用户开发可屏蔽中断预备的中断口,它通过系统ISA总线的B4端子引入,中断类型码为71H,其对应的中断服务程序如下:
从这段服务程序在向从片发出中断结束命令之后调用INT 0AH指令转向0AH中断服务程序,也就是说,对于IRQ9所引起的中断,最终的中断类型为0AH。这是为了和PC/XT系统相兼容而设计的。在PC/XT系统中只有一片8259A,用户中断连接在其IR2上,对应的中断类型为0AH。PC/AT系统将IR2用作8259A级联的输入端,并将IRQ9作为用户中断使用,其中断类型为71H,为了与PC/XT系统实现向下兼容,71H中断服务程序被设计为将中断服务改向至0AH中断服务程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。