微机第三版教材习题参考答案 马维华 下载本文

微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 21

OUT 0A1H,AL

MOV AL,00000010B ;ICW3 OUT 0A0H,AL

MOV AL,00000001B ;ICW4 OUT 0A1H,AL

(2)

MOV AL,00101000B ;主片OCW1 OUT 21H,AL

MOV AL,00100000B ;从片OCW1 OUT 0A1H,AL MOV SI,1000 MOV DI,2000 MOV AL,0AH OUT 20H,AL IN AL,20H MOV BL,AL INC SI MOV AL,0BH OUT 20H,AL IN AL,20H INC SI IN AL,21H MOV AL,0AH

OUT 0A0H,AL ;读从片IRR命令 IN AL,0A0H ;读从IRR进AL中 MOV BH,AL INC DI MOV AL,0BH OUT 0A0H,AL

;读从片ISR命令

IN AL,0A0H ;读从片ISR进AL中 MOV ES:[DI],AL ;从片ISR存入内存 INC DI IN AL,0A1H MOV AL,BL MOV CX,8 MOV DL,0

;计1的个数 ;读从片IMR ;取主片IRR

MOV ES:[DI],AL ;从片IMR存入内存

;从片IRR暂存BH

MOV ES:[DI],AL ;从片IRR存入内存

;读主片IMR

MOV DS:[SI],AL ;主片IMR存入内存

;读主片ISR命令 ;读主片ISR进AL中 ;读主片IRR命令 ;读IRR进AL中 ;主片IRR暂存BL

(3)

MOV DS:[SI],AL ;主片IRR存入内存

MOV DS:[SI],AL ;主片ISR存入内存

22 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案

LP10:

LP11:

LP20:

EIOP:

LRET: (4) INSTR:

STOP:

WRITEAA: RET0:

SHR AL,1 ADDC DL,0 LOOP LP10

CMP DL,2

;>=2?

JAE LP11 JMP LRET MOV AL,BH ;取从片IRR MOV CX,8 MOV DL,0

;计1的个数 SHR AL,1 ADDC DL,0 LOOP LP20

CMP DL,1

;=1? JZ EIOP JMP LRET MOV AL,20H

;EOI命令 OUT 20H,AL ;OCW3 OUT 0A0H,AL MOV AL,BL NOT AL

;对主片IRR取反 OUT 21H,AL

;屏蔽主片未申请的中断

MOV AL,BH NOT AL

;对从片IRR取反 OUT 0A1H,AL

;屏蔽从片未申请的中断

NOP .EXIT PUSH AX

PUSH DX MOV DX,3C0H IN AX,DX

MOV WORD PTR DATABUF,AX CMP AX,2005H JA STOP CMP AX,0 JZ WRITEAA MOV AL,55H MOV DX,3C1H OUT DX,AL JMP RET0

MOV BYTE PTR DATABUF+5,0AAH MOV AL,20H

;EOI命令

微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 23

OUT 20H,AL OUT 0A0H,AL POP DX POP AX IRET CLI

MOV DX,OFFSET INSTR MOV AX,2577H INT 21H IN AL,0A1H OUT 0A1H,AL STI

MOV DX,OFFSET INSTALL INT 27H

;读IMR

AND AL,01111111B ;打开从片IR7中断

;中断类型号77H(对应从片的IR7)

(5) INSTALL:

7-12 如图7.16所示的8259级联系统,如果主片地址为0300H和0302H,从片地址为0304H和0306H,则:

(1) 如果主片中断类型号为50H~57H,从片中断类型号为98H~9FH,主片为特殊全嵌套方式,写出有

关程序片段。

(2) 如果系统中所有中断源无法区分区分优先级别,则写出相应的程序片段以适应这种优先级 (3) 如果主片8259当前最高优先级为IR5,并使该请求变为下一个循环的最低优先,则OCW2的

格式怎样?

解:(1)设置中断类型号,特殊全嵌套

主片:

MOV DX,300H MOV AL,00010001B OUT DX,AL INC DX

MOV AL,50H OUT DX,AL OUT DX,AL OUT DX,AL 从片:

MOV DX,304H MOV AL,00010001B OUT DX,AL INC DX

MOV AL,98H

;写ICW1

;写ICW2 ;写主片ICW3 ;写ICW4

MOV AL,00000100B MOV AL,00010101B

;写ICW1

24 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案

OUT DX,AL OUT DX,AL OUT DX,AL MOV DX,300H

;写ICW2 ;写从片ICW3 ;写ICW4

MOV AL,00000010B MOV AL,00000001B (2)应该选择循环优先方式 MOV AL,10000000B OUT DX,AL MOV DX,304H MOV AL,10000000B OUT DX,AL (3)

MOV DX,300H MOVAL,11000101B OUT DX,AL MOV DX,304H MOVAL,11000101B OUT DX,AL

;从片OCW2

7-16 如何加载中断向量?写出加载中断类型号为50H到内存的程序片段。

答:加载中断向量有两种基本方式,一种是直接装入方法,一种是利用系统功能调用加载方法。其中直接装入法是将中断向量的段地址和偏移地址直接写入中断向量表对应地址区域,而系统功能调用法是利用DOS功能调用的入口采用软件指令来间接装入中断向量到中断向量表中。

直接装入法写50H号中断的中断向量的程序片段:

MOV AX,0

MOV ES,AX ;使ES指向0段

MOV BX,50H*4 ;中断类型号为50H (从0-255) MOV AX,OFFSET INTSR ;中断服务程序偏移地址 MOV ES:WORD PTR [BX],AX ;偏移地址写入向量表 MOV AX,SEG INTSR ;中断服务程序段地址

MOV ES:WORD PTR [BX+2],AX ;使ES指向0段,段地址写入向量表 ┅

INTSR: PUSH AX;中断服务程序 PSUH BX ┅

POP BX POP AX IRET ;中断返回

;写主片OCW2

;写从片OCW2

;主片OCW2

系统功能调用法写50H号中断的中断向量的程序片段:

MOV DX,SEG INTSR ;取现中断服务程序入口地址的段地址→DS

MOV DS,DX

MOV DX,OFFSET INTSR ;取中断服务程序入口地址的偏移地址→DX MOV AH,25H MOV AL,50H ;中断类型号在AL中(50H) INT 21H ;装入中断向量

??

INTSR: PUSH AX;中断服务程序 PSUH BX