微机原理习题答案-周杰英 张萍08 习题答案

发布时间 : 星期一 文章微机原理习题答案-周杰英 张萍08 习题答案更新完毕开始阅读

1、CPU响应外设中断请求的必要条件是什么?

解:CPU对外部中断的请求,通常必须满足以下条件才能响应: (1)置位中断请求触发器; (2)中断屏蔽触发器没有被屏蔽; (3)开放CPU内部中断,IF=1 (4)没有优先级别更高的中断请求正在被响应或正发出、挂起; (5)CPU现行指令执行结束。

2、试述中断的一般过程。

解:中断过程是指从中断源提出中断请求,到中断被CPU响应并被处理,最好返回到被中断的程序的全过程。经历的处理步骤包括:

(1)中断请求。需要服务的中断源向CPU发出中断请求;

(2)中断判优。由中断优先权判决电路识别中断请求的中断源,当同时有多个中断源提出请求时,按一定的优先级顺序选择响应中断;

(3)中断响应。当满足CPU响应中断的条件时,CPU获取响应的中断信息,即中断类型码,并自动保护某些现场信息,从而转入中断服务处理程序的过程;

(4)中断处理。执行中断服务程序,为发出中断请求的中断源服务; (5)中断返回。恢复现场信息,返回被中断的程序。

3、已知(SP)=0100H,(SS)=0300H,(PSW)=0240H,以及00020H至00023H单元的内容分别是40H,00H,00H和01H,同时还已知INT8指令并进入该指令响应的中断例程时,SP,SS,IP,CS,PSW和堆栈最上面三个字的内容。 解:SS:SP=0300:00FAH,CS:IP=0100:0040H,PSW=0040H

堆栈最上面三个字的内容分别为:00A2H,0900H,0240H。

4、试编写只有一块8259A的8088系统中的8259A的初始化程序,8259A的地址为02C0H和02C1H,要求:

(1)中断请求输入采用电平触发; (2)IRQ请求的中断类型是23; (3)采用缓冲器方式;

(4)采用普通的EOI命令。 解: INTA0 EQU 02C0H INTA1 EQU 02C1H MOV AL,1BH ; 00011011B MOV DX,INTA0 OUT DX,AL MOV AL,16 MOV DX,INTA1 OUT DX,AL MOV AL,09H; 00001101B OUT DX,AL

5、试根据不同的假设分别编写一段使8259A的优先级顺序如下的程序: IR4,IR5,IR6,IR7,IR0,IR1,IR2,IR3

假定CPU为8088,8259A的偶地址为20H。假设1:当前的最高优先级为IR0;假设2:当前的最高优先级为IR3。 解:(1)MOV AL,11X000011B

OUT 20H,AL

(2)MOV AL,10X00000B

OUT 20H,AL 或: 同(1)。

6、试编写一段将8259A中的 IRR、ISR和IMR的内容传送至存储器中从REG_ARR开始的数组中去的程序,假定CPU为8086,8259A的偶地址为50H。 解:对于8086 CPU, 若8259A的偶地址为50H,则奇地址为52H

INTA0 EQU 50H INTA1 EQU 52H

MOV AX,SEG REG-ARR MOV ES,AX LEA DI,REG-ARR CLD

MOV AL,0AH ;00001010B MOV DX,INTA0 OUT DX,AL ;写OCW3,读IRR IN AL,DX STOSB

MOV AL,0BH OUT DX,AL ; 写OCW3,读ISR IN AL,DX STOSB

MOV DX,INTA1 IN AL,DX ; 读IMR STOSB

7、设在最大方式下,8086系统中有一块主8259A和一块从8259A,从8259A接至主8259A的IR1上,主、从8259A的偶地址分别是0200H和0210H。主8259A的IR 0中断类型码是30H,从8259A的IR0的中断类型码是38H。所有请求都是边沿触发,用EOI命令清ISR位,两块8259A采用级联方式连接。主、从8259A的IMR都清除,SP/EN用作输入。试编写该中断系统的初始化程序。

解:对于8086 CPU,若主8259A的偶地址为0200H,则奇地址为0202H;若从8259A的偶地址为0210H,则奇地址为0212H。

;主8259A初始化程序: INTA0 EQU 0200H; INTA1 EQU 0202H MOV AL,11H ; 00010001B MOV DX,INTA0 OUT DX,AL ;ICW1 MOV AL,30H

MOV DX,INTA1 OUT DX,AL ;ICW2 MOV AL,02H ;00000010B OUT DX,AL ;ICW3 MOV AL,11H ;00010001B OUT DX,AL ;ICW4

;从8259A初始化程序: INTA0 EQU 0210H INTA1 EQU 0212H MOV AL,11H MOV DX,INTA0 OUT DX,AL ;ICW1 MOV AL,38H MOV DX,INTA1 OUT DX,AL ;ICW2 MOV AL,01H OUT DX,AL ;ICW3 MOV AL,01H ;00000001B OUT DX,AL ;ICW4

8、若一个中断系统有一块主8259A和三块从8259A,从8259A分别接在主8259A的IR2,IR3和IR6上,如主8259A的IMR置成01010000,各从8259A的IMR的所有位都清零。除接在IR3上的那块8259A外,其他8259A都按全嵌套方式工作,而接在IR3上的那块8259A的最高优先级是IR5,试按优先级的顺序排列出各未被屏蔽的中断级,最高优先级在前。 解:优先级顺序为: 主: IR0、IR1

从2: IR0、IR1、IR2、IR3、IR4、IR5、IR6、IR7 从3: IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4 主: IR5、IR7

9、简单说明中断向量的概念,并指出8086/8088中断系统存放中断向量表的内存位置。如果对应于中断类型号为40H的中断处理子程序存放在1234H:5678H开始的内存区域中,则中断向量应如何存放?

解:中断服务处理程序入口地址称为中断向量。

8086/8088中断系统的中断向量表处于内存开始处00000H~003FFH单元的1K字节存储区里。最多可以容纳256个中断向量。

从00100H单元开始顺序存放:78H,56H,34H,12H。

10、假设8259A的地址为E0000H和E0001H,且系统中只有一片8259A,试画出它与系统总线的连接图。若允许外部中断源的上升沿触发中断,不需要缓冲,按一般全嵌套方式工作,中断向量号为40H,试编写此8259A的初始化程序。

解:连接图如图所示。

MOV DX,0E000H MOV AL,13H OUT DX,AL INC DX

MOV AL,40H OUT DX,AL MOV AL,01H OUT DX,AL

11、设已编写好类型码为0CH的中断服务程序为: INT_ROUT

? PROC

FAR

?

IRET INT_ROUT ENDP

请编写一段程序,实现该程序的中断矢量在中断矢量表中的装填。 解:(1)MOV AX,0 MOV ES,AX MOV DI,0DH*4 MOV AX,OFFSET INT_ROUT CLD STOSW MOV AX,SEG INT_ROUT STOSW 或者:

(2) PUSH DS

MOV AX,SEG INT_ROUT

MOV DS,AX MOV DX,OFFSET INT_ROUT MOV AH,25H MOV AL,0DH INT 21H POP DS

联系合同范文客服:xxxxx#qq.com(#替换为@)