天津理工大学微机原理2

发布时间 : 星期二 文章天津理工大学微机原理2更新完毕开始阅读

五、编程题(每题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 BINTOASC

DB 5 DUP(0) PROC NEAR MOV LEA

CX,10 SI,BUFF+4

;除数送CX

;SI指向ASCII码个位数地址

;子程序名:BINTOASC。入口参数:AX=二进制数。出口参数:无。

BTOA1: CMP AX,10

BINTOASC

JB XOR DIV OR MOV DEC JMP

BTOA2 DX,DX CX DL,30H [SI],DL SI BTOA1 AL,30H

;二进制数小于10吗? ;小于10转BTOA2 ;被除数高字清0 ;除以10 ;余数变ASCII码 ;存一字节ASCII码 ;ASCII码地址减1

;存最高位的ASCII 码

BTOA2: OR

RET ENDP

MOV [SI],AL

六、系统扩展题( 10分)

得分 在8088最大模式下,用6264芯片(8K*8)设计一个16K*8的RAM存储器。RAM起始地址为8C000H。 要求:

1. 画出完整的外扩展存储器系统图,包括地址总线、数据总线、地址译码、控制信号及片选的连接。设计所用门电路、译码器可自选。 2. RAM空间地址连续且没有重迭区,写出各芯片地址分布空间范围。

参考答案 1. 电路图

2.地址分布空间范围:

1# 6264 2# 6264

A19.18.17.16 15.14.13. 1 0 0 0 1 1 0 1 0 0 0 1 1 1 12….A0 0-1 0-1 地址 8C000H-8DFFFH 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的初始化程序 己知fCLK0=2MHz,则TCLK0=

1fCLK0,所以,0 通道计数初值

N0 = TOUT0/TCLK0 =TOUT0× fCLK0=50 ×10?6 ×2×106 =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

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