李伯成《微型计算机原理及应用》课后习题答案(4)

2019-04-23 20:09

JMP

STOR

CHANGE: STOR:

NEG MOV AL

DATA3,AL

3

HLT DATA1 DB

DATA2 DB 5 DATA3 DB ?

3.13 存从40000H到4BFFH的个单元均写入55H,并再逐个读出,验证是否一致,若一致,置AL为7EH,否则置AL为81H.

ORG 100h MOV MOV

AX,4000H; DS,AX;

MOV SI,0 START: MOV CX,0BFFFH BEGIN: MOV [SI],55H MOV AL,[SI]

INC SI

CMP AL,55H JNZ ERR

LOOP BEGIN MOV AL,7EH

JMP STOP ERR: MOV AL,81H STOP: HLT

3.14~3.15 端口03FBH的BIT5为状态标志,当该位为1时,表示外设忙,不能接收数据;当为0时,表示外设闲,可以接收数据;当CPU向端口03F8H写入一个字节的数据时,03FBH的BIT5置1,当它变为0状态时,又可以写入下一个数据。据此编写将起始地址为SEDAT的50个数据输出到03F8H端口的程序。

WAIT:

MOV DX,03FBH IN AL,DX TEST

AL,0010 0000B;(20H)

JZ SEND JMP WAIT SEND:MOV DX,3F8H MOV AL,[SI];

CMP AL,0AH;输出字串结束标志符 JZ STOP OUT DX,AL

WAIT

JMP

STOP:HLT

3.16口02E0H的BIT2和BIT5同时为1,表示端口02E7H有一个字节型数据准备好可以

用以输入,当CPU从该端口读入数据后,02E0端口的BIT2和BIT5就不再同时为1;只有当02E7H端口的数据再次准备好时,它们才会再次同时为1,据此编写从02E7H端口输入32个数据然后存入A1000H单元开始的区域。

MOV MOV MOV MOV

AX,0A000H DS,AX

SI,1000H; CL,20H;

设置存储区地址 输入数据个数

BEGIN:MOV DX,0E20H IN AL,DX TEST AL,0010 0100B;

测试状态位 BIT5、BIT2

JZ BEGIN; 不同时为1继续测试 MOV DX,02E7H IN AL,DX; 输入数据 MOV [SI],AL; 存到指定区域 INC SI;

移动地址指针

循环

LOOP BEGIN; HLT

3.17 在内存40000H开始的16K的单元中存放着一组数据,将其顺序搬移到起始地址为A0000H的区域。

解:利用字符串操作指令 MOVSB,16K即16*1024=3FFFH。

MOV

AX,4000H

DS,AX AX,A000H ES,AX SI,0

MOV MOV MOV MOV MOV MOV

DI,0 CX,3FFFH

CLD

REPMOVSB

HLT

3.18 上题的基础上,将两个区域的数据逐个进行比较,若有错将BL置0,全对将BL置

FFH。

MOV MOV

AX,4000H DS,AX

MOV MOV MOV MOV MOV

AX,A000H ES,AX SI,0 DI,0

CX,03FFH

CLD AAB: CMPSB

JNZ STOP LOOP AAB MOV BL,0FFH

JMP EX1 STOP: MOV BL,0; EX1: NOP HLT

3.19 统计由40000H单元开始的16K个单元中所存字符?A‘的个数,统计结果存放在DX寄存器中。

MOV MOV MOV MOV MOV

AX,4000H DS,AX SI,0;

CX,3FFFH; 数据个数

DX,0;统计结果寄存器清零 XOR DX,DX

AAB:

AAC:

CLD LODSB CMP AL,?A‘; 比较 JZ AAC;字符为?A‘转计数 LOOP AAB; 循环

JMP STOP; 处理完毕转结束 INC DX; 统计结果加1 DEC CX; 循环次数减1

JCXNZ AAB; CX<>0继续

STOP: HLT

3.20 编写对AL中的数据进行―偶校验‖的一个过程,并将校验结果放入AL寄存器。

PJY

PROC NEAR PUSH PUSH PUSH PUSH MOV AND

AX BX CX DX

AL,DAT AL,AL

JNP PJY1

3.21

MOV

AL,00H; 表示为偶

JMP EXIT

PJY1: MOV AL,FFH; 表示为奇 EXIT: POP

DX

CX BX AX

POP POP POP

PJY RET ENDP DAT DB ?

对80000H开始的256个单元的数据加上偶校验。

ORG 100h

MOV AX,8000H MOV DS,AX MOV MOV

SI,0

CX,100H

PAR0:

CLD

LODSB;(MOV AL,[SI] ;INC SI) TEST AL,AL JNP PAR1

LOOP PAR0 JMP STOP OR AL,80H; MOV [SI-1],AL DEC CX

PAR1:

JNZ PAR0 STOP: HLT

4-1 某以8088为CPU的微型计算机内存RAM区为00000H ~3FFFFH,若采用6264、62256、

2164或21256各需要多片芯片? 解答: 8088 内存单元为8 bit,所以,从00000H 到3FFFFH,共需要214 个byte,共214*8bit,也就是共占用16K byte空间。由于各种芯片的数据总线根数不同,所以在连接时要特别注意芯片的位数; 对于如下芯片:

6264 有8根数据线,13根地址线,故其容量为 2*8bit,即8Kbyte, 所以需要2片; 62256 有8根数据线,15根地址线,故其容量为 215*8bit,即32 Kbyte, 所以仅需要1片;尽管题目要求只需要16K的空间,但在使用62256时不得不使用1片。

2164 有8根数据线,12根地址线,故其容量为 2*8bit,即4Kbyte, 所以需要4片; 21256 有1根数据线,10根地址线(实际为20根,分两组),但由于仅有一根数据线,要构成八位的存储器至少需要8片,但总容量为8*256Bit,远远超过题目的要求。

4.2 利用全地址译码将6264接在8088的系统总线上,其所占的地址范围为BE000H~BFFFFH,试画出连接图。

解答:6264有13根地址线,连接时接到系统总线的低13位,即A0~A12, 其他7根地址线A19~A13的 地址译码输入应该为:1011 111 B,故而有如下的连接:

1213

4.3

试利用6264 芯片,在8088系统总线上实现0000H~03FFFH的内存区域,试画出电路连接图。


李伯成《微型计算机原理及应用》课后习题答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:硕士学位论文—智能建筑火灾自动报警系统的研究 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: