(1)、什么是中断?什么是中断源?中断系统应该具备什么功能?
- CPU暂停执行现行程序,转而处理随机事件,处理完毕后再返回中断的程序,这以过程称为中断。
- 能够引发CPU中断的信息源,称为中断源。
- 中断系统应具备以下功能:
- 为了加强中断系统的灵活性,对于硬件设备的中断请求,应当具有屏蔽和开放的性能,使得程序员能够灵活控制。
- 能实现"中断判优"即中断源排队,当有多个中断源提出请求时,能够优先响应高级别得中断。
- 能够实现中断嵌套,即较高级别得中断源能够中断较低级别得中断服务程序。
- 系统响应中断后,能够自动转入中断处理,中断处理结束后,能自动返回。
(2)、什么是中断向量?存放15H型中断的中断向量的地址是多少?
- 中断向量是实模式下中断服务程序的入口地址,由两部分组成:
- 服务程序所在代码段的段地址。
- 服务程序入口的偏移地址。
- 15H * 4=54H,因此存放15H型中断的中断向量的地址为:54H~47H。
(3)、CPU响应可屏蔽中断的条件是什么?
INTR
引脚有中断请求,NMI
引脚没有中断请求,系统没有DMA
请求。- CPU当前指令执行完毕。
- CPU处于开中断状态(
I
标志=1)。
(4)、CPU在什么条件下响应非屏蔽中断请求?
- NMI引脚有中断请求,系统没有DMA请求。
- CPU当前指令执行完毕。
(5)、请叙述PC系统硬件中断和软件中断的不同之处。
- 中断的引发方式不同。硬件中断是由CPU以外的硬件设备发出中断请求(接到引脚
INTR
和NMI
)引发的;而软件中断是由CPU执行INT n
指令而引发的. - CPU获取中断类型码的方式不同:响应硬件可屏蔽中断后,中断类型码是由
8259A
提供的;响应软件中断时,中断类型码是由软件中断指令INT n
本身提供的。 - CPU响应的条件不同:CPU只有在开中断时,才能响应硬件可屏蔽中断,响应软件中断不受此限制。
- 中断处理程序的结束方式不同。在硬件可屏蔽中断服务程序中,中断处理结束后,需要做两件事:
- 向
8259A
发出中断结束命令,8259A
收到此命令后将ISR寄存器中的相应位清零,结束中断。 - 执行
IRET
指令,中断返回。
- 向
(6)、实模式下,什么是中断向量?中断向量由哪些部分组成?什么是中断向量表?
- 中断向量是实模式下中断服务程序的入口地址。
- 中断向量由两部分组成:
- 服务程序在代码段的基地址(2个字节)。
- 服务程序入口的偏移地址(2个字节)。
- 每个中断向量为4个字节,最多共有256种中断,因此中断向量共占用1024个字节,在实模式下,CPU规定中断向量集中存放在系统RAM最低端的1024个单元中,这就是中断向量表。
(7)、解释INTR
和INTA
的作用。中断响应周期中,第一个INTA
脉冲有什么作用?第二个脉冲呢?
INTR
是CPU接收可屏蔽中断请求信号的引脚,INTA
是8259A
接收CPU发出的中断响应信号的引脚。8259A
接收到第一个INTA
脉冲后,将中断服务寄存器中与被选中的中断源对应的那一位置1,同时把中断请求寄存器中的相应位清零,表示当前中断请求已经被相应;8259A
接收到第二个INTA
脉冲后把选中中断源的中断类型码n
通过数据线发送往CPU。
(8)、在PC中如何使用”用户中断“入口请求中断和进行编程?
PC中分配给用户的中断是IRQ9
,经扩展ISA总线插槽B4端子引出,故把用户的中断请求线连接在B4
上。在应用程序中,利用25H
号系统调用将中断服务程序的入口地址写入对应0AH
类型中断对应的中断向量表中去。在应用程序中把主片8259A
中断屏蔽寄存器的D2清零,把从片8259A
中断屏蔽寄存器的D1清零,使主片的IR2
、从片的IR1
可以输入中断请求。如果用户中断使用的中断类型为0AH
,中断服务程序结束前向主片8259A
发送中断结束命令,应用程序结束前回复主片8259A
的IR2
和从片8259A
的IR1
屏蔽状态,关闭用户请求并恢复中断向量表状态。
(9)、8259A
中断向量控制器的功能是什么?
8259A
中断控制器可以接受8个中断请求输入并将他们寄存,对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A
可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A
支持多种中断结束方式。8259A
与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A
可以进行级联以便形成多于8级输入的中断控制系统。
(10)、8259A
初始化编程过程完成哪些功能?这些功能由哪些ICW
设定?
初始化编程用来确定8259A
的工作方式。ICW1
确定8259A
工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。ICW2
用来 指定8个中断请求的类型码。ICW3
在多片系统中确定主片与从片的连接关系。ICW4
用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据缓冲等。
(11)、8259A
的初始化命令字和操作命令字有什么区别?他们对应于编程结构哪些内部寄存器?
8259A
的工作方式通过微处理器向其写入初始化命令字来确定。初始化命令字分别装入ICW1~ICW4
内部寄存器。8259A
在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。操作命令字分别装入OCW1~OCW3
内部寄存器中。8259A
占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。
(12)、8259A
的中断屏蔽寄存器IMR
与8086中断允许标志IF
有什么区别?
IF
是8086内部标志寄存器的一位,若IF
=0,8086就不响应外部中断可屏蔽中断请求INTR
引线上的请求信号。8259A
有8个中断请求输入线,IMR
中的某位为1,就把对应该位的中断源的中断请求屏蔽,无法被8259A
处理,也无法向8086处理器产生INTR
请求。