【微机原理】中断
(一)8086如何响应一个可屏蔽中断请求?
(1)8259A收到中断源请求时,中断请求寄存器IRR相应位置1。
(2)优先级分析器PR用于比较该中断申请的优先级是否高于正在执行的中断服务。若高,则通过INT将中断请求信号发送至8086的INTR引脚上。
(3)在8086CPU内,当IF=1,INTR=1,且指令执行完成,则则CPU向8259A发出两个INTA#中断响应信号。
(4)8259A收到第一个INTA#信号时,将ISR中断服务寄存器的对应为置1。
(5)8259A收到第二个INTA#信号时,将中断类型码发送给8086。
(6)8086收到中断类型码后,将标志位,CS,IP分别入栈。
(7)中断类型码*4开始的一个字的数据为中断服务函数的偏移地址IP,中断类型码*4+2开始的一个字的数据为中断服务函数的段地址CS。得到CS,IP后,转向中断服务函数,进行操作。
(二)主从8259A如何连线?
(1)主8259A,从8259A的数据引脚都接入CPU的数据总线相连。
(2)SP#/EN#,主片接高电平,从片接低电平。
(3)主片的INT接8086的INTR,从片的INT接主片的IRR寄存器的对应位(IRn)
(4)主片CAS0~CAS2与从片CAS0~CAS2同名相连。
(5)主从的8259A的INTA#信号与8086的INTA#相连。
(三)什么是CAS0~CAS2?
CAS0~CAS2是3根级联控制信号。系统中最多可以把8级中断信号扩展成64级主从式中断请求。
当8259A作为主片时,CAS0~CAS2为输出信号。
当8259A作为从片时,CAS0~CAS2为输入信号。
在主从级联系统中,将根据主片8259A这三根引线上的输出来选择8259A的从片,作为从片的片选信号。
(四)主从系统下,CAS0~CAS2的使用过程。
(1)当从8259A发出中断申请时,通过INT输出给主8259A。如果优先级高于正在服务的中断源的级别,则主8259A通过INT向CPU发出申请。
(2)CPU通过INTA#发送到主片和从片的INTA#上。主片INTA#通过CAS0~CAS2发出从片片选信号,选择对应的从片,通过数据引线发出中断类型码给8086。