微型计算机原理及应用答案汇总(6)

2019-01-27 12:53

微型计算机原理习题参考答案

MOV DS,AX LEA SI,DAT LEA DI,RESULT

MOV CX,NUM

NEXT: MOV AL,[SI]

CALL SUB1

MOV [DI],AL;MOV [SI],AL INC SI INC DI LOOP NEXT MOV AX,4C00H INT 21H

SUB1

PROC PUSH AX MOV DX,0

MOV CX,COUNT

AGAIN: RCR AL,1

JNC L

L:

INC DX

LOOP AGAIN POP AX TEST DX,01 JZ QUIT OR AL,80H

QUIT: RET SUB1 ENDP CODE ENDS END START

17.(19)试编写程序实现将键盘输入的小写字母转换成大写字母并输出。 解答:

DATA SEGMENT

MESS DB 'THE INPUT IS NOT CORRECT.',0DH,0AH,'$' DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

- 26 -

微型计算机原理习题参考答案

ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA

MOV DS,AX NEXT: MOV AH,01H

INT 21H CMP AL,'Q'

JZ EXIT CMP AL,'a' JB ERROR CMP AL,'z' JA ERROR SUB AL,20H MOV AH,02H MOV DL,AL INT 21H JMP NEXT

ERROR: MOV AH,09H

LEA DX,MESS INT 21H JMP NEXT

EXIT:

MOV AX,4C00H INT 21H

CODE ENDS END START

18.从键盘接收 20 个字符,按键入顺序查找最大的字符,并显示输出。 解答:

DATA SEGMENT DAT DB 20 DUP(?) DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA

MOV DS,AX

;从键盘接收 20 个字符,并送 DAT 中保存

- 27 -

微型计算机原理习题参考答案

LEA MOV

SI,DAT CX,20

NEXT: MOV AH,01H INT 21H MOV INC

[SI],AL SI

LOOP NEXT

;比较 20 个字符中的最大字符,并放入 AL 中 MOV CX,19 LEA MOV INC

SI,DAT AL,[SI] SI

NEXT1: CMP AL,[SI] JAE LL MOV AL,[SI] LL: INC SI LOOP NEXT1

;将最大的字符的 ASCII 码由 AL 送 DL 显示 MOV DL,AL MOV AH,2H INT

21H

;返回 DOS

MOV AX,4C00H

INT 21H

CODE ENDS END START

19.(29)编写汇编程序,接收从键盘输入的 10 个数,输入回车符表示结束,然后将这些数加密后存于 BUFF 缓冲区中。加密表为:

输入数字:0,1,2,3,4,5,6,7,8,9;密码数字:7,5,9,1,3,6,8,0,2,4 解答:

DATA SEGMENT

BUFF DB 10 DUP(?)

TABLE DB 7,5,9,1,3,6,8,0,2,4 DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA

- 28 -

微型计算机原理习题参考答案

START: MOV AX,DATA MOV

DS,AX

; LEA DI,BUFF NEXT: MOV AH,01H INT CMP JZ SUB LEA

21H;从键盘上接收单个字符 AL,0AH;与 0AH 比,判是否要结束 EXIT

AL,30H;否则,将 0~9 的 ASCII 码转换为十进制数 BX,TABLE

XLAT;用查表指令进行加密 MOV [DI],AL INC JMP

DI NEXT

;退出并返回 DOS

EXIT: MOV AX,4C00H

INT 21H

CODE ENDS END START

20.(23)有一个 100 个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束;否则,按顺序将此元素插入表中适当的位置,并修改表长。 解答:

;调试时用了十个数据,本程序已通过调试 DATA SEGMENT TABLE_LEN DB ? X DB 99H TABLE

DB 98H,90H,80H,70H,60H,50H,40H,30H,20H,10H;X1,X2,...,X100

COUNT EQU $-TABLE DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA

MOV DS,AX

;将数组中的 100H 个数求和后求平均值 MOV DX,0000 LEA SI,TABLE

- 29 -

微型计算机原理习题参考答案

MOV MOV

CX,COUNT

AL,X;假设 X 为给定元素

;在 TABLE 中是否有元素 X AGAIN: MOV BL,[SI] CMP JZ INC

BL,AL EXIT SI

LOOP AGAIN

;X 元素不在表中,将 X 插入表中适当位置 LEA SI,TABLE MOV ADD

DI,SI;DI 为表的末地址 DI,COUNT-1

MOV CX,COUNT AGAIN0:MOV BL,[SI] CMP JA

BL,AL NEXT0

BB: CMP DI,SI JZ AA MOV AH,[DI] MOV DEC JMP MOV MOV

[DI+1],AH;将比 X 小的元素后移一位 DI BB

[DI],AL

TABLE_LEN,COUNT+1

AA: MOV [DI+1],BL

JMP EXIT NEXT0: INC SI LOOP AGAIN0 MOV MOV EXIT:

[DI+1],AL;若比较后,X 元素为最小,则放在最末单元的后面,并将表长加 1 TABLE_LEN,COUNT+1

;退出并返回 DOS MOV AX,4C00H INT 21H

CODE ENDS END START

21.(26)在当前数据段(DS),偏移地址为 DATAB 开始的顺序 80 个单元中,存放着某班 80 个同学某门考试成绩。按要求编写程序:

①编写程序统计≥90 分;80 分~89 分;70 分~79 分;60 分~69 分,<60 分的人数各为多少,并将结果放在同一数据段、偏移地址为 BTRX 开始的顺序单元中。

②试编程序,求该班这门课的平均成绩为多少,并放在该数据段的 AVER 单元中。 解答:

;统计学生成绩

- 30 -


微型计算机原理及应用答案汇总(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:食用油检测毕设论文

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

马上注册会员

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