微机原理课后习题答案 下载本文

Y6 对应的A15、A14、A13 为110,所以其地址范围为: 当A18=0时,地址范围为:

1000 1100 0000 0000 0000B~ 1000 1101 1111 1111 1111B 即 8C000H~ 8DFFFH 当A18=1 时,地址范围为:

1100 1100 0000 0000 0000 B~ 1100 1101 1111 1111 1111B 即CC000H~CDFFFH

Y7 对应的A15、A14、A14为111,所以其地址范围为:

当 A18=0时,地址范围为:

1000 1110 0000 0000 0000B~ 1000 1111 1111 1111 1111B 即 8E000H~ 8FFFFH 当 A18=1 时,地址范围为:

1100 1110 0000 0000 0000B~ 1100 1111 1111 1111 1111 B 即

CE000H~CFFFFH。

李伯成《微机原理》习题 第五章

本章作业参考书目:

1. 王永山等: 微型计算机原理与应用 西安电子科大出版社 1998 3. 洪志全等 编 《现代计算机接口技术》 电子工业出版社 2002年4月

5-1 满足那些条件8086CPU才能响应中断源的中断请求?

参考答案:

8088/8086的中断承认需要满足4个条件:

(1) 一条指令执行之后---因为8088/8086CPU只在指令周期的最后一个时钟周期检测INTR信号;

(2) 中断允许标志IF=1;

(3) 没有发生 NMI、HOLD和RESET;

(4) 指令STI、IREI指令执行之后须再执行一条其他指令,但一些指令组合(如REP)要视为一个指令总体。

5-2 说明8088/8086 软件中断指令INT n的执行过程。

由指令INT n引起的中断也称为“异常”,即软件中断或内部中断。这里,INT 为指令操作码,n 是中断类型号(中断向量码);当该指令执行时,CPU 根据中断向量码的数值在中断向量表(IDT---Interrupt Direction Table)找到相应的中断服务程序入口地址,在对CS 、IP和FLAG进行入栈保护之后,进而转向指定程序的运行。

5-3 用三态门 74LS244 作为输入接口,接口地址规定为04E5H,试画出其与8088的总线

连接图。

解:根据题意,当地址线上的电平为 0000 0100 1110 0101 且IOR信号为低(IOR低电平有效)时,74LS244的门控信号E1、E2应该为低,据此画出下列电路:

5-4 利用具有三态输出的锁存器74LS374 作为输出接口,就接口地址为0E504H,试画出连

接图。若5-3题中的输入接口的BIT3、BIT4、BIT7同时为1时,将DATA为首地址的10个内存数据连续由输出接口输出。若不满足则等待,试编写程序。

解:根据题意,当地址线上的电平为 1110 0101 0000 0100 且IOW信号为低(IOW低电平有效)时,74LS374的时钟端CP 应该为低,而 74LS374的OE始终为低,据此画出下列电路:

根据题5-3和题5-4 电路,如果题5-3电路中的BIT3、BIT4 和BIT7 同时为1,则将以DATA为首地址的10个数据连续由0E504H输出口输出,不满足条件等待,对应的程序段如下:

OUTWAIT : MOV DX,04E5H IN AL,DX TEST AL,98H; 10011000B JZ OUTWAIT; MOV SI,OFFSET DATA MOV CL,0AH; 数据个数

MOV DX,0E504H

OUTPUT: MOV AL,SI INC SI OUT DX,AL LOOP OUTPUT

5-5若要求8259 的地址为E010H和E011H,试画出与8080总线的连接图。若系统中只有一片8259,允许8个中断源边沿触发,不要缓冲,一般全嵌套方式,中断向量定为40H,试编写初始化程序。

解:电路连接见图示,根据8259的ICW格式,有如下数据:

ICW1 0 00 1 0 0 1 1 = 13H 特征位 无意义 特征位 边沿触发 无意义 单片 有ICW4

ICW2 0 1 0 0 0 0 0 = 40H 无ICW3 (单片,无级连控制)

ICW4 000 0 00 1 1 = 03H 无意义 一般嵌套 非缓冲模式 自动EOI 8086模式

据上述有下列初始化语句: MOV DX,0E010H;方式控制寄存器端口1地址 MOV AL,13H OUT DX,AL MOV DX,0E011H;方式控制寄存器端口2地址 MOV AL,40H OUT DX,AL MOV AL,03H OUT DX,AL;

5-5 DMAC(8237)占几个接口地址?这些地址在读写时的作用是什么?叙述DMAC由内存向接口传送一个数据块的过程。若希望利用8237 把内存中的一个数据块传送到内存的另一个区域,应当如何处理?当考虑到8237工作在8088系统,数据是由内存的某一段向另外的一段传送且数据块的长度大于64KB,应当如何考虑?

答: 8237的A0~ A3在其空闲周期作为内部寄存器的选址线,故而8237 共

占用16个端口地址;

当利用8237由内存向接口传送一个数据块时,8237送出内存地址及MEMR控制信号,将选中的存储单元的内容读出并放置到数据总线,同时,DMAC送出IOW 控制信号,将数据写到预选的规定接口中,此后,DMAC自动修改内部寄存器得值,以适应下一个数据的传送;

当利用8237把内存中的一个数据块传送到内存的另一个区域时,选择通道0和通道1 实现传送。这时由通道0送出源区地址和MEMR控制信号,将选中的数据送入8237内部暂存器,同时修改源区地址指针;此后,由通道1 送出目的区地址和MEMW信号,将内部暂存器的数据写到目的区,同时通道1修改地址和字节计数,当通道1的字节计数器为零时或者外部输入了EOP信号,传送结束。