微机原理及应用答案 - 来源(2)

2019-09-01 14:01

EXIT: MOV AH,4CH INT 21H CODE ENDS END START END

8.试编写程序段,完成将数据区从0100H 开始的一串字节数据逐个从F0H 端口输出,已知

数据串以0AH 为结束符。 解答:

DATA SEGMENT ORG 0100H

DATA1 DB N DUP(?) DATA ENDS ;

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

;将DATA1 数据串中的数据取出并从F0H 端口中输出 LEA SI,DATA1 MOV CX,N MOV BL,0AH

NTXT: MOV AL,[SI] CMP AL,BL JZ EXIT

OUT 0F0H,AL INC SI

LOOP NEXT ;返回DOS

EXIT: MOV AH,4CH INT 21H

CODE ENDS END START END

9.(24)内存中以FIRST 和SECOND 开始的单元中分别存放着两个4 位用压缩BCD 码表示

的十进制数, 低位在前。编程序求这两个数的和,仍用压缩BCD 码表示, 并存到以THIRD 开始的单元。 解答:

DATA SEGMENT FIRST DW 3412H SECOND DW 7856H THIRD DB ?,?,? DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,FIRST LEA DI,SECOND LEA BX,THIRD MOV CX,2 CLC

AGAIN: MOV AL,BYTE PTR[SI] MOV DL,BYTE PTR[DI] ADC AL,DL DAA

MOV BYTE PTR[BX],AL INC SI INC DI INC BX

LOOP AGAIN JC AA

MOV BYTE PTR[BX],0 JMP EXIT

AA: MOV BYTE PTR[BX],1 EXIT: MOV AX,4C00H INT 21H CODE ENDS END START

10.(27)设字变量单元A、B、C 存放有三个数,若三个数都不为零,则求三个数的和,存 放在D 中;若有一个为零,则将其余两个也清零,试编写程序。 解答:

DATA SEGMENT A DB ? B DB ? C DB ? D DW ? DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

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

START: MOV AX,DATA MOV DS,AX LEA SI,A LEA DI,D MOV AL,[SI] CMP AL,00 JZ ZERO ADC DX,AL LEA SI,B MOV AL,[SI] CMP AL,00 JZ ZERO ADC DX,AL LEA SI,C MOV AL,[SI] CMP AL,00 JZ ZERO ADC DX,AL MOV [DI],DX JMP EXIT

ZERO: MOV AL,0 MOV A,AL MOV B,AL MOV C,AL ;

EXIT: MOV AX,4C00H INT 21H CODE ENDS END START

11.(16)试编程序,统计由TABLE 开始的128 个单元中所存放的字符“A”的个数,并将结 果存放在DX 中。 解答:

DATA SEGMENT

TABLE DB X1,X2,...X128 DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,TABLE MOV DX,0

MOV CX,128

AGAIN: MOV AL,[SI] CMP AL,'A' JNZ NEXT INC DX

NEXT: INC SI LOOP AGAIN MOV AX,4C00H INT 21H CODE ENDS END START

12.试编制一个汇编语言程序,求出首地址为DATA 的1000 个字数组中的最小偶数,并把

它存放于MIN 单元中。 解答:

DATA SEGMENT

ARRAY DW X1,X2,...X1000

ARRAY_EVEN DW 1000 DUP(?) MIN DW ? MAX DW ? DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT

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

;将数组中的偶数放入ARRAY_EVEN 中 LEA SI,ARRAY

LEA DI,ARRAY_EVEN MOV CX,1000

AGAIN: MOV AX,[SI] TEST AX,01h JNZ NEXT MOV [DI],AX INC DI INC DI

NEXT: INC SI INC SI

LOOP AGAIN

;找出ARRAY_EVEN 中的最大数 LEA SI,ARRAY_EVEN MOV CX,999

MOV AX,[SI] MOV BX,AX INC SI INC SI

NEXT: CMP AX,[SI] JAE LL

MOV AX,[SI] LL: INC SI INC SI

LOOP NEXT MOV MAX,AX

;找出ARRAY_EVEN 中的最小数(第13 题增加的部分) LEA SI,ARRAY_EVEN MOV CX,999 MOV AX,[SI]

MOV BX,AX INC SI INC SI

NEXT: CMP AX,[SI] JBE SS

MOV AX,[SI] SS: INC SI INC SI

LOOP NEXT MOV MIN,AX ;返回DOS

MOV AX,4C00H INT 21H CODE ENDS END START

13.在上题中,如果要求同时找出最大和最小的偶数,并把它们分别存放于MAX 和MIN 单元中,试完成程序。 解答:略(见第12 题)。

14.(28)在DATA 字数组中存放有100H 个16 位补码数,试编写一程序求它们的平均值,放

在AX 中,并求出数组中有多少个数小于平均值,将结果存于BX 中。 解答:

DATA SEGMENT

DAT DW X1,X2,...X256 DATA ENDS ;

STACK SEGMENT STACK ENDS ;

CODE SEGMENT


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

下一篇:2006年各地高考模拟化学压轴题精选(附答案)

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

马上注册会员

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