<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
1.        什么是中断?

是指 CPU 在正常运行程序时,由于内部 / 外部事件或由程序预先安排的事件,引起 CPU 暂时停止正在运行的程序,转到为该内部 / 外部事件或预先安排的事件服务的程序中去,服务完毕,再返回去继续运行被暂时中断的程序,这个过程称为中断。

2.        可屏蔽中断处理的一般过程是什么?

可屏蔽中断的处理过程一般可分为 4 个阶段:

(1)        中断申请:外设向 CPU 发出中断申请信号, CPU 检测到有效的 INTR ,且无 DMA 请求、 IF 1 ,当前指令执行完毕就进入响应阶段

(2)        <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
INTA
中断响应: CPU 通过总线控制器发出两个连续的中断响应信号( 2        负脉冲)组成中断响应周期。在中断响应周期中, CPU 取得中断类型号 n ,将程序状态字( PSW )及断点的地址( CS IP )依次入栈保护。再查中断向量表,将( 4*n ® IP ;( 4*n+2 ® CS ,进入中断服务阶段

(3)        中断服务: CPU 执行中断服务程序,为中断源服务

(4)        中断返回:当执行到中断服务程序中的 IRET 指令时,将堆栈栈顶的三个字单元内容弹出,依次送给 IP CS PSW CPU 返回到原来的程序去执行。

3.        什么是中断优先级?设置中断优先级的目的是什么?

中断优先级是指,中断源被响应和处理的优先等级。设置优先级的目的是为了在有多个中断源同时发出中断请求时, CPU 能够按照预定的顺序(如:按事件的轻重缓急处理)进行响应并处理。

4.        什么是中断嵌套?

是指 CPU 正在执行一个中断服务程序时,有另一个优先级更高的中断提出中断请求,这时会暂时挂起当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行,这个过程就是中断嵌套。

5.        什么是中断向量?它是如何装入中断向量表的?

中断向量是中断服务程序的入口地址,一个中断向量由 4 个字节组成,它包括中断服务程序的段首址和偏移地址。

中断向量并非常驻内存,而是由程序装入中断向量表中的。系统配置和使用的中断所对应的中断向量由系统软件负责装入;系统若未配置系统软件(如单板机系统),或用户自定义的中断向量,由用户自行装入。

6.        什么是中断类型号?它的作用是什么?

中断类型号是系统为每一个中断源分配的代号,它是 8 位的,与系统的中断源一一对应。

中断类型号负责引导 CPU 找到中断服务程序的入口点。通过中断类型号查中断向量表可得到中断向量(中断服务程序入口地址),其中:物理地址为 4*n 的单元是中断服务程序入口点的偏移地址;物理地址为 4*n+2 的单元是中断服务程序的段首址。

7.        不可屏蔽中断和可屏蔽中断各有何特点?其用途如何?

不可屏蔽中断( NMI ): CPU 不能屏蔽,即:无论 IF 的状态如何, CPU 收到有效的 NMI 必须进行响应; NMI 是上升沿有效;中断类型号固定(为 2 );它在被响应时无中断响应周期。不可屏蔽中断通常用于故障处理(如:协处理器运算出错、存储器校验出错、 I/O 通道校验出错等)

可屏蔽中断( INTR ): CPU 可以通过设置 IF 的状态屏蔽它,若 IF 1 CPU 响应, IF 0 CPU 不响应; INTR 高电平有效;它需要中断响应周期;中断类型号由中断控制器在中断响应周期中提供给 CPU 。可屏蔽中断主要用于普通 I/O 设备请求与 CPU 进行数据交换。

8.        IBM-PC 微机的中断系统由哪几部分构成?

IBM-PC 微机的中断系统由硬件中断(外部中断)和软件中断(内部中断)组成。

硬件中断又分为可屏蔽中断 INTR 和不可屏蔽中断( NMI );

软件中断有双字节指令形式的中断( ROM-BIOS 中断、 DOS 中断和未定义自由中断)和几种特殊类型的中断(除法溢出中断、单步中断、断点中断、溢出中断)。

9.        所谓 DOS 系统功能调用是指哪一个软中断?试举出一些常用的设备管理和文件管理的 DOS 功能调用。

DOS 系统功能调用是指中断类型号为 21H 的软中断指令 INT  21H

例如:

功能号为 01H ,对键盘管理,输入一个字符;

功能号为 0AH ,对键盘管理,输入一个字符串;

功能号为 02H ,对显示器管理,输出一个字符;

功能号为 09H ,对显示器管理,输出一个字符串;

功能号为 3CH ,对文件管理,建立一个文件;

功能号为 3DH ,对文件管理,打开一个文件;

功能号为 3EH ,对文件管理,关闭文件;

功能号为 3FH ,对文件管理,读文件;

功能号为 40H ,对文件管理,写文件。

10.    试比较软中断和硬中断不同的特点。

软中断和硬中断的不同主要体现在以下几个方面:

 

软中断

硬中断( INTR

是否有随机性、突发性

是否有中断响应周期

中断类型号的提供方法

固定或由指令提供

由中断控制器提供

是否可屏蔽(受 IF 影响)

不可屏蔽

可屏蔽

硬中断中的不可屏蔽中断 NMI 除了具有随机性和突发性之外,其余特点同软中断。

11.    可编程中断控制器 8259A 协助 CPU 处理哪些中断事务?

8259A 协助 CPU 完成的中断事务主要有:

接收和扩充外设的中断请求;进行中断请求的屏蔽与开放控制;对中断源进行优先级排队管理;中断被响应时,提供该中断源的中断类型号。

12.    8259A 具有哪些工作方式和中断操作功能?指出与这些功能相对应的命令字( ICW/OCW )的内容?

8259A 的工作方式有以下几种:

(1)      引入中断请求的方式:有边沿触发和电平触发两种;中断服务方式有向量式中断和查询式中断两种;

(2)      与系统总线的连接方式:缓冲方式和非缓冲方式两种;

(3)      屏蔽中断的方式:通常屏蔽和特殊屏蔽两种方式;

(4)      优先级排队的方式:固定优先级和循环优先级(优先级轮换)两种,循环优先级又分为指定轮换和自动轮换两种;

(5)      中断结束的方式:自动结束方式和非自动结束方式两种

8259A 的中断操作功能有以下几个:

(1)      设置中断触发方式、选择 8259A 芯片的数目——由 ICW1 完成;

(2)      设置中断类型号的高五位——由 ICW2 完成;

(3)      设置级联方式具体的连接情况(主片的哪些中断申请端连有从片;从片与主片的哪个中断申请端相连)——由 ICW3 完成;

(4)      设置特定完全嵌套方式、缓冲方式和中断结束方式—— ICW4 完成;

(5)      设置对各中断源的屏蔽与开放状态——由 OCW1 完成;

(6)      设置优先级轮换及发中断结束命令——由 OCW2 完成;

(7)      设置特殊屏蔽方式、查询式中断的服务方式、选择要读出的寄存器——由 OCW3 完成;

13.    在什么情况下,才要求用户对 8259A 进行初始化?

一般在没有配置完善的操作系统的单板微机系统中,才需要对 8259A 进行初始化。另外,若通过插件板扩展中断系统,附加的 8259A 由于系统软件并未对它进行初始化,所以用户要写入它的初始化程序。

14.    如何对 8259A 进行初始化编程(包括单片使用和双片使用)?

在单片 8259A 系统中,初始化时按顺序依次写入 ICW1 ICW2 、和 ICW4

在双片 8259A 系统中,初始化时要按顺序依次写入 ICW1 ICW2 ICW3 ICW4

15.    什么是中断响应周期?在中断响应周期中 CPU 8259A 一般要完成哪些工作?

LOCK
INTA
INTA
CPU 收到有效的 INTR 信号,若 IF 1 ,且无 DMA 请求,当前指令执行完毕,就通过总线控制器发出连续的两个中断响应信号(       )组成一个中断响应周期。

INTA
LOCK
在第 1       负脉冲中, CPU 发出有效的总线锁定信号       ,封锁总线,防止其他主控器占用总线; 8259A 经判优后将 IRR 的相应位清 0 ISR 的对应位置 1

INTA
在第 2       负脉冲中, CPU 撤除总线锁定信号       ALE 信号也变为无效,允许数据线传送数据; 8259A 将被响应中断源的中断类型号送给 CPU

8259A 工作于自动结束方式,在第 2        负脉冲的后沿, 8259A 还要清除 ISR 中在第 1 个负脉冲里置 1 的位。

16.    用户利用 PC 微机的中断系统资源进行中断传送时,要求用户对 8259A 的哪些命令进行编程使用?

用户利用 PC 微机的中断系统资源进行中断传送时,对 8259A 的编程主要是写入 OCW1 (开放或屏蔽某些中断级)和 OCW2 (发中断结束命令)。

17.    何谓中断向量修改?修改中断向量的方法和步骤如何?

在实际应用中,用户借用系统的中断资源(中断类型号)来运行自己的中断服务程序时,需要将中断向量表中原来的中断向量修改为自己中断服务程序的入口地址,这就是中断向量的修改。

中断向量的修改方法一般是利用 DOS 功能调用的 35H 号和 25H 号功能,其步骤可分为以下 3 步:

(1)      保存原中断向量:用 35H 号功能读取原来的中断向量,保存于两个字单元中;

(2)      设置新的中断向量:用 25H 号功能将新的中断向量填入到中断向量表的相应位置( 4*n 4*n+2 单元中);

(3)      恢复原中断向量:使用完,再利用 25H 号功能将保存于两个字单元中的原来的中断向量重新填入到中断向量表中。

18.    中断结束命令安排在程序的什么地方?在什么情况下要求发中断结束命令?为什么?

中断结束命令一般安排在中断服务程序中,在中断服务完成,中断返回指令( IRET )之前。

8259A 工作于非自动结束方式时,要送中断结束命令。因为这种方式,即使中断已经服务完毕, ISR 中的对应位也不会自动清 0 ,这样就使得低优先级的中断和同级中断得不到应有的响应。通过发中断结束命令,将服务完的中断级在 ISR 中的对应位清 0 ,以便开放同级和低级中断。