微机原理及接口技术习题及答案 ·29·
;使AX的数值与AL的数值相等,为下面的查表做准备
MOV SI, AX ;作为7段码表的表内位移量 MOV AL, [BX+SI] ;取7段码 MOV DX, 2710H ;7段数码管接口的地址为2710H OUT DX, AL
8. 什么是中断?常见的中断源有哪几类?CPU响应中断的条件是什么?
参考答案:中断,是指在程序执行过程中,出现某种紧急事件,CPU暂停执行现行程序,转去执行处理该事件的程序——中断服务程序,执行完后再返回到被暂停的程序继续执行,这一过程称为中断。常见的中断源有由外围设备引起的中断、由CPU本身产生的中断、由存储器产生的中断、由控制器产生的中断、由总线产生的中断、实时过程控制产生的中断、实时钟的定时中断、程序指令引起的中断以及硬件故障中断等。CPU响应中断需要满足4个条件:① CPU处于开中断状态,即IF=1;② 当前没有发生复位、没有总线请求、没有内部中断、没有不可屏蔽中断;③ 当前执行的指令不是开中断指令STI,也不是中断返回指令IRET。如果刚巧是,CPU将它们执行结束后,再执行一条指令,CPU才能响应中断。④ CPU执行完现行指令。
9. 简述微机系统的中断处理过程。
参考答案:①获得中断类型码②将中断类型码放入暂存器保存;③ 将标志寄存器内容压入堆栈,以保护中断时的状态;④ 将IF和TF标志清0;⑤ 保护断点,当前的IP和CS的内容入栈;⑥ 根据中断类型码,在中断向量表中找出中断服务程序的入口地址,装入IP和CS,转向中断服务程序。⑦执行中断服务程序;⑧ 中断返回。
10. 软件中断和硬件中断有何特点?两者的主要区别是什么?
参考答案:软件中断是通过中断指令“INT n”调用的中断,硬件中断是CPU检测到中断请求信号后运行的中断。两者的主要区别在于中断源不同。
11. 中断优先级的排队有哪些方法?采用软件优先级排队和硬件优先级排队各有什么特
点?
参考答案:
中断判优可以采用硬件方法,也可采用软件方法。
软件判优的硬件电路简单,优先权安排灵活,但软件判优所花的时间长,如果中断源很多,中断的实时性就很差。
硬件判优实时性好,但硬件电路相对复杂。
12. 8086的中断分哪两大类?各自有什么特点?中断矢量和中断矢量表的含义是什么?
8086一共可处理多少级中断? 参考答案:
8086的中断分为两类:内部中断和外部中断。外部中断又分为可屏蔽中断和不可屏蔽中断,这两类分别通过NMI和INTR两个中断请求信号接收外部中断源产生的中断请求。内部中断包括:由CPU本身产生的中断、由程序员安排的中断指令引起的中断。具体包括INT n、INT3、INTO指令引起的中断,除法错中断,单步操作引起的中断。
8086为每个中断源分配了一个编号,称为中断类型码或中断矢量码。中断矢量:中断服务程序的入口地址。中断矢量表:将中断矢量按一定的规律排列成表。8088/8086系统可以处理256种中断。
·30· 微机原理及接口技术习题及答案
13. 简述8086的中断类型,非屏蔽中断和可屏蔽中断有哪些不同之处?CPU通过什么响
应条件来处理这两种不同的中断?
参考答案:8086的中断分为两类:内部中断和外部中断。不可屏蔽中断是指CPU一定要响应的中断。NMI是不可屏蔽中断请求信号的输入端,CPU不需要执行中断响应总线周期获取中断向量码,不发送中断响应信号INTA,直接查中断向量表转去执行中断服务程序。INTR是可屏蔽中断请求信号的输入端,CPU收到中断请求信号后,检测中断允许标志位IF,若IF=1,CPU准备响应INTR请求;若IF=0时,CPU屏蔽INTR请求。可屏蔽中断的优先级低于不可屏蔽中断。中断标志位IF可以用指令STI和CLI进行设置。
14. 已知8086系统中采用单片8259A来控制中断,中断类型码为20H,中断源请求线与
8259A的IR4相连,计算中断向量表的入口地址。如果中断服务程序入口地址为2A310H,则对应该中断源的中断向量表的内容是什么? 参考答案:2000H:A310H等
15. 已知对应于中断类型码为18H的中断服务程序存放在0020H:6314H开始的内存区域
中,求对应于18H类型码的中断向量存放位置和内容。
参考答案:位置:18H*4=60H,内容:中断向量表中60H~63H的区域顺序存放着14H,63H,20H,00H。
16. 在编写程序时,为什么通常总要用STI和CLI中断指令来设置中断允许标志?8259A
的中断屏蔽寄存器IMR和中断允许标志IF有什么区别?
参考答案:INTR是可屏蔽中断请求信号的输入端,CPU收到中断请求信号后,检测中断允许标志位IF,若IF=1,CPU准备响应INTR请求;若IF=0时,CPU屏蔽INTR请求。可屏蔽中断的优先级低于不可屏蔽中断。中断标志位IF可以用指令STI和CLI进行设置。
8259A的中断屏蔽寄存器IMR中每一位对应着8259A 8个中断源IR0~IR7中的一个。当IMR的某一位Dn =0时,允许对应IRn引脚上的外设向8259A申请中断。当Dn =1禁止对应IRn引脚上的外设向8259A申请中断。而8088的IF=0时,禁止CPU响应任何可屏蔽中断。
17. 8259A对中断优先权的管理和对中断结束的管理有几种处理的方式?各自应用在什么
场合?
参考答案:8259A有3种结束中断的方式,它们是:
(1)自动结束方式。系统一进入中断处理过程,8259A就自动将当中断服务寄存器ISR中对序位ISn 清零,就好象已经结束了中断服务程序一样。这种方式只用于系统中只有一片8259A,而且各个中断不会发生嵌套的情况。 (2)一般的中断结束方式。要由CPU向8259A写入OCW2来清除ISR中中断级别最高的非零ISn 位,即正在执行的中断服务程序的ISn 位。这种方式用于全嵌套的工作方式和优先级自动循环方式。 (3)特殊的中断结束方式。要由CPU向8259A写入OCW2时指明要清除的ISn 位,这种方式用于8259A工作在特殊全嵌套方式或优先级特殊循环方式情况。在非中断自动结束方式中,若在中断处理程序中未发中断结束命令OCW2,8259A就会认为此中断服务程序尚未结束,如果外设有新的中断申请时,8259A进行优先级比较时,可能作出错误的判断,它对中断控制的功能会不正常。
微机原理及接口技术习题及答案 ·31·
18. 8259A仅有两个端口地址,它们如何识别ICW命令和OCW命令?
参考答案:
ICW1特征是A0=0,并且控制字的D4=1。 ICW2特征是A0=1。
当ICW1中的SNGL位为0时处事于级联方式,此时需要写ICW3。 ICW4是在ICW1的IC4=1时才使用。 OCW1特征是A0=1。
OCW2特征是A0=0且D4D3=00。 OCW3特征是A0=0且D4D3=01。
19. 在两片8259A级联的中断系统中,主片的IR6接从片的中断请求输出,请写出初始化
主片、从片时,相应的ICW3的格式。 略
20. 已知8086系统采用单片8259A,中断请求信号使用电平触发方式,完全嵌套中断优
先级,数据总线无缓冲,采用自动中断结束方式,中断类型码为20H~27H,8259A的端口地址为B0H和B1H,试编程对8259A设定初始化命令字。 略
·32· 微机原理及接口技术习题及答案
第七章习题及答案
1. 8253芯片共有几种工作方式?每种方式各有什么特点?
2. 某系统中8253芯片的计数器0~2和控制端口地址分别为FFF0H~FFF3H。定义计数器0
工作在方式2,CLK0=2MHz,要求OUT0输出1kHz的脉冲;定义计数器l工作在方式CLKl输入外部计数事件,计满100个向CPU发出中断请求。试写出8253的初始化程序。
解:CNT0:控制字:00110100B,计数初值:N=FCLK/FOUT=2MHz/1KHz=2000 CNT1:控制字:01010000B,计数初值:N=100
MOV DX, 0FFF3H ;计数器0工作在方式0 MOV AL, 34H
OUT DX, AL MOV DX, 0FFF0H MOV AX, 2000
OUT DX, AL ;计数器0置初值 MOV AL,AH OUT DX,AL
MOV DX, 0FFF3H ;计数器1工作在方式3 MOV AL, 50H
OUT DX, AL MOV DX, 0FFF1H MOV AL, 100 OUT DX, AL
3. 试编写一程序,使IBM PC机系统板上的发声电路发出200Hz至900Hz频率连续变化
的报警声。
4. 定时/计数器芯片8253占用几个端口地址?各个端口分别对应什么?
解:4个端口地址,A1A0-〉计数器0,计数器1,计数器2,控制寄存器
5. 利用8253产生时钟基准信号,现有频率为2MHz的脉冲信号,要求OUT0提供毫秒级
脉冲信号(1000Hz),OUT1提供秒级脉冲信号(1Hz),OUT2输出的脉冲信号周期为60秒,完成8253初始化程序。
解:CNT0:控制字:00110100B(34H),计数初值:N= FCLK/FOUT0=2MHz/1KHz=2000 CNT1:控制字:01110100B(74H),计数初值:N= FOUT0/FOUT1=1KHz/1Hz=1000 CNT2:控制字:10010100B(94H),计数初值:N= TOUT1/Tout2=60S/1S=60