资源描述
五、编程题(每题9分, 共18分)
得分
1.设X、Y、Z已定义为字节变量。若X和Y各存放一个32位(四字节)的无符号二进制数,存放顺序是低位字节在先,试写出将X和Y相加、结果存入Z的程序段。
参考程序
X DB 4DUP( ? )
Y DB 4DUP( ? )
Z DB 5DUP( 0 )
……
LEA SI , X
LEA DI , Y
LEA BX ,Z
CLC
MOV CX , 4
NEXT: MOV AL , [SI]
ADC AL , [DI]
MOV [BX] , AL
INC SI
INC DI
INC BX
LOOP NEXT
JNC LP1
MOV [BX] , 1
LP1: HLT
2. 编程将AX中的二进制数转换成ASCII码,转换的结果放在从ASCBUF开始的连续5个内存单元中。(结果高位在前存放)
AX中的二进制数最大数值为65535,转换为ASCII码需5个字节单元。程序首先将AX中的数除以10,所得余数为个位上的数,加上30H变为相应的ASCII码,所得的商再作为被除数除以10,得到的余数为十位上的数,加上30H变为相应的ASCII码,所得的商再作为被除数除以10,得到的余数为百位上的数,…,直到被除数小于10时,得到最高的一位数。
参考程序
BUFF
DB 5 DUP(0)
;子程序名:BINTOASC。入口参数:AX=二进制数。出口参数:无。
BINTOASC
PROC
NEAR
MOV
CX,10
;除数送CX
LEA
SI,BUFF+4
;SI指向ASCII码个位数地址
BTOA1:
CMP
AX,10
;二进制数小于10吗?
JB
BTOA2
;小于10转BTOA2
XOR
DX,DX
;被除数高字清0
DIV
CX
;除以10
OR
DL,30H
;余数变ASCII码
MOV
[SI],DL
;存一字节ASCII码
DEC
SI
;ASCII码地址减1
JMP
BTOA1
BTOA2:
OR
AL,30H
MOV
[SI],AL
;存最高位的ASCII 码
RET
BINTOASC
ENDP
六、系统扩展题( 10分)
得分
在8088最大模式下,用6264芯片(8K*8)设计一个16K*8的RAM存储器。RAM起始地址为8C000H。
要求:
1. 画出完整的外扩展存储器系统图,包括地址总线、数据总线、地址译码、控制信号及片选的连接。设计所用门电路、译码器可自选。
2. RAM空间地址连续且没有重迭区,写出各芯片地址分布空间范围。
参考答案
1. 电路图
2.地址分布空间范围:
A19.18.17.16
15.14.13.
12….A0
地址
1# 6264
1 0 0 0
1 1 0
0-1
8C000H-8DFFFH
2# 6264
1 0 0 0
1 1 1
0-1
8E000H-8FFFFH
七、接口设计题(10分)
得分
用8253、8255A设计一个数据采集系统如图所示。要求每隔50μs采集一个数据,数据的I/O传送控制采用中断控制,8253的OUT信号接至8259A的IR2中断请求信号引脚。
要求:
1)说明8255A,8253端口地址。
2)完成8255A,8253的初始化软件设计。
参考答案
1) 8255A口地址 000H, 8255B口地址001H, 8255控制口地址003H,
8253 计数器0通道地址008H, 8253控制口地址00BH。
2)8255A,8253的初始化程序
己知=2MHz,则= ,所以,0 通道计数初值
N0 = / =× =50 × ×2× =100
MOV DX ,003H ;8255控制口地址
MOV AL ,90H ;8255控制字,A口输入,
OUT DX ,AL ;8255控制字送控制口
MOV DX ,00BH ;8253控制口地址
MOV AL ,35H ;控制字,计数器 0 工作在方式 0,写入16位初值,BCD数
OUT DX ,AL ;8253控制字送控制口
MOV DX ,008H ;8253计数器 0 地址
MOV AL ,0H ;8253计数初值送计数器 0
OUT DX ,AL
MOV AL ,01H
OUT DX ,AL
展开阅读全文