5.11 某8088系统用2764 ROM芯片和6264 SRAM芯片构成16KB的内存。其中,ROM的地址范围为0FE000H~0FFFFFH,RAM的地址范围为0F0000H~0F1FFFH。试利用74LS138译码,画出存储器与CPU的连接图,并标出总线信号名称。
解:连接如下图所示。
5.12 叙述EPROM的编程过程,并说明EPROM和EEPROM的不同点。(不要求) 解:
(1)对EPROM芯片的编程过程详见教材第215~217页。 (2)EPROM与EEPROM的不同之处为: 。EPROM用紫外线擦除,EEPROM用电擦除。
。EPROM是整片擦除,EEPROM可以整片擦除,也可以逐个字节地擦除。
5.13 试说明FLASH EEPROM芯片的特点及28F040的编程过程。(不要求) 解:
(1)特点是:它结合了RAM和ROM的优点,读写速度接近于RAM,断电后信息又不会丢失。
(2)28F040的编程过程详见教材第222~223页。
第6章输入输出和中断技术
。
6.3 主机与外部设备进行数据传送时,采用哪一种传送方式,CPU的效率最高?(不要求)
解:使用DMA传送方式CPU的效率最高。这是由DMA的工作性质所决定的。 6.5 某输入接口的地址为0E54H,输出接口的地址为01FBH,分别利用74LS244和74LS273作为输入和输出接口。试编写程序,使当输入接口的bit1、bit4和bit7位同时为1时,CPU将内存中DATA为首址的20个单元的数据从输出接口输出;若不满足上述条件则等待。
解:首先判断由输入接口读入数据的状态,若满足条件,则通过输出接口输出一个单元的数据;之后再判断状态是否满足,直到20个单元的数据都从输出接口输出。
LEA SI,DATA ;取数据偏移地址 MOV CL,20 ;数据长度送CL AGAIN: MOV DX,0E54H
WAITT: IN AL,DX ;读入状态值
AND AL,92H ;屏蔽掉不相关位,仅保留bit1、bit4和bit7位状态 CMP AL,92H ;判断bit1、bit4和bit7位是否全为1
JNZ WAITT ;不满足bit1、bit4和bit7位同时为1则等待 MOV DX,01FBH MOV AL,[SI]
OUT DX,AL ;满足条件则输出一个单元数据 INC SI ;修改地址指针
LOOP AGAIN ;若20个单元数据未传送完则循环
6.14 单片8259A能够管理多少级可屏蔽中断?若用3片级联能管理多少级可屏蔽中断?(不要求)
解:因为8259A有8位可屏蔽中断请求输入端,故单片8259A能够管理8级可屏蔽中断。若用3片级联,即1片用作主控芯片,两片作为从属芯片,每一片从属芯片可管理8级,则3片级联共可管理22级可屏蔽中断。
6.17 已知(SP)=0100H,(SS)=3500H,(CS)=9000H,(IP)=0200H,(00020H)=7FH,(00021H)=1AH,(00022H)=07H,(00023H)=6CH,在地址为90200H开始的连续两个单元中存放一条两字节指
令INT 8。试指出在执行该指令并进入相应的中断例程时,SP、SS、IP、CS寄存器的内容以及SP所指向的字单元的内容是什么? 解:CPU在响应中断请求时首先要进行断点保护,即要依次将FLAGS和INT下一条指令的CS、IP寄存器内容压入堆栈,亦即栈顶指针减6,而SS的内容不变。INT 8 指令是一条两字节指令,故其下一条指令的IP=0200H+2=0202H。 中断服务子程序的入口地址则存放在中断向量表(8×4)所指向的连续4个单元中。所以,在执行中断指令并进入响应的中断例程时,以上各寄存器的内容分别为:
SP=0100H-6=00FAH SS=3500H
IP=[8×4]=1A7FH
CS=[(8×4)+2]=6C07H [SP]=0200H+2=0202H
第7章常用数字接口电路
7.10 某8255芯片的地址范围为A380H~A383H,工作于方式0,A 口、B 口为输出口,现欲将PC4置“0”,PC7置“1”,试编写初始化程序。
解:该8255芯片的初始化程序包括置方式控制字及C口的按位操作控制字。程序如下:
MOV DX,0A383H ;内部控制寄存器地址送DX MOV AL,80H ;方式控制字 OUT DX,AL
MOV AL,08H ;PC4置0 OUT DX,AL
MOV AL,0FH ;PC7置1 OUT DX,AL
7.11 设8255芯片的接口地址范围为03F8H~03FBH,A 组 B 组均工作于方式0,A 口作为数据输出口,C 口低 4 位作为控制信号输入口,其他端口未使用。试画出该片8255芯片与系统的电路连接图,并编写初始化程序。 解:8255芯片与系统的电路连接如图所示。
由题目知,不需对 C 口置位控制字,只需对8255置方式控制字,故其初始化程序如下:
MOV DX,03FBH MOV AL,81H OUT DX,AL
7.12 已知某8088微机系统的I/0接口电路框图如教材中图7-47所示。试完成: (1)根据图中接线,写出8255芯片、8253芯片各端口的地址。
(2)编写8255芯片和8253芯片的初始化程序。其中,8253芯片的OUT 1 端输出100Hz方波,8255芯片的A 口为输出,B 口和 C 口为输入。
(3)为8255芯片编写一个I/O控制子程序,其功能为:每调用一次,先检测PC0的状态,若PC0 = 0,则循环等待;若PC0 = 1,可从 PB 口读取当前开关 K 的位置(0~7 ),经转换计算从 A 口的 PA0~PA3输出该位置的二进制编码,供LED显示。 解:
(1)8255芯片的地址范围为:8000H~FFFFH 8253芯片的地址范围为:0000H~7FFFH (2)
;初始化8255芯片 MOV DX,8003H
MOV AL,8BH ;方式控制字,方式0,A 口输出,B 口和 C 口输入 OUT DX,AL ;初始化8253
MOV DX,0003H ;内部寄存器口地址
MOV AL,76H ;计数器1,先写低8位/后写高8位,方式3,二进制计数 OUT DX,AL
MOV DX,0001H ;计数器1端口地址 MOV AX,10000 ;设计数初值=10000 OUT DX,AL MOV AL,AH OUT DX,AL (3)
;8255芯片的控制子程序
;定义显示开关位置的字形译码数据 DATA SEGMENT
BUFFER DB 3FH,06H,5BH,0FH,66H,6DH,7CH,07H DATA ENDS ;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA MAIN PROC PUSH DS
MOV AX,DATA MOV DS,AX CALL DISP POP DX RET
MAIN ENDP
;输出开关位置的二进制码程序 DISP PROC
PUSH CX PUSH SI
XOR CX,CX CLC
LEA SI,BUFFER
MOV DX,8002H ;C 口地址 WAITT:IN AL,DX ;C 口状态 TEST AL,01H JZ WAITT
MOV DX,8001H ;读 B 口的开关位置 IN AL,DX
NEXT: SHR AL,1 INC CX
JC NEXT ;没有接地则移动 DEC CX
ADD SI,CX ;查表,CX 为开关位置 MOV AL,[SI] MOV DX,8000H OUT DX,AL ; POP SI POP CX RET
DISP ENDP CODE ENDS END MAIN