微机课后习题答案(8)

2020-04-14 01:38

MOV SI,0 ;将DX 转换成十进制数,再转换成ASCII 码—>NUM MOV AX,DX MOV DX,0 MOV BX,10 D2: DIV BX ADD DL,30H

MOV NUM[SI],DL INC SI CMP AX,0 JZ EXIT MOV DX,0 JMP D2

EXIT: MOV DL,0AH ;显示十进制数 MOV AH,2 INT 21H

MOV DL,0DH INT 21H D3: DEC SI

MOV DL,NUM[SI] MOV AH,2 INT 21H JNZ D3

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

14. 将AX 中的无符号二进制数转换成ASCII 字符串表示的十进制数。

答:将13 题输入过程和输出过程去掉即得。 DATA SEGMENT

NUM DB 10 DUP(?) ;转换后ASCII 码按倒序存放于NUM DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX, ×××× ;无符号二进制数

MOV SI,0 ;将AX 转换成十进制数,再转换成ASCII 码—>NUM MOV DX,0 MOV BX,10 D2: DIV BX ADD DL,30H

MOV NUM[SI],DL INC SI CMP AX,0 JZ EXIT MOV DX,0 JMP D2

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

15. 从键盘输入20 个有符号数,将它们排序并在屏幕上显示。答:DATA SEGMENT

NUM DW 20 DUP(?) ;存放20 个有符号数

ASC DB 10 DUP(?) ;输出时暂时保存每一个数的ASCII 码 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,20 MOV BX,10 MOV SI,0 MOV BP,0

BEGIN: MOV DX,0 ;输入20 个有符号数(十进制),并 A1: MOV AH,1 ;转化为二进制数存放于NUM 数组 INT 21H

CMP AL,' ' ;判断是否空格 JZ A2

CMP AL,0DH ;是否回车符 JZ A2

CMP AL,'-' ;是否?-? JZ A3 JMP A4

A3: MOV BP,1 JMP A1

A4: PUSH AX MOV AX,DX MUL BX MOV DX,AX POP AX

SUB AL,30H MOV AH,0 ADD DX,AX JMP A1

A2: CMP BP,1 JNZ A5

NEG DX ;若为负数,则取负 A5: MOV NUM[SI],DX MOV BP,0 ADD SI,2 LOOP BEGIN

MOV DL,0DH ;回车换行 MOV AH,2 INT 21H

MOV DL,0AH INT 21H

MOV BX,0 ;对20 个有符号数按由小到大顺序排序

MOV CX,19 ;采用冒泡法,排序后依然存放于NUM 数组 L1: MOV DX,CX

L2: MOV AX,NUM[BX] CMP AX,NUM[BX+2] JLE CONT1

XCHG AX,NUM[BX+2] MOV NUM[BX],AX CONT1: ADD BX,2 LOOP L2 MOV CX,DX MOV BX,0 LOOP L1

MOV CX,20 ;将20 个有符号数(二进制)转换为十进制数MOV SI,0 ;再转换为ASCII 码并输出屏幕 D1: MOV AX,NUM[SI] ADD SI,2

TEST AX,1000H JZ D4 PUSH AX MOV DL,'-' MOV AH,2 INT 21H POP AX NEG AX

D4: MOV DI,0 MOV DX,0 MOV BX,10 D2: DIV BX ADD DL,30H

MOV ASC[DI],DL INC DI

CMP AX,0 JZ D3

MOV DX,0 JMP D2

D3: MOV DL,ASC[DI-1] MOV AH,2 INT 21H DEC DI JNZ D3 MOV DL,' ' MOV AH,2 INT 21H LOOP D1

MOV AH,4CH ;返回DOS INT 21H CODE ENDS END START

16. 编写多字节有符号数的加法程序,从键盘接收两个加数,在屏幕上显示结果。 答:DATA SEGMENT

STRING1 DB 'INPUT FIRST NUM(HEX):',0DH,0AH,'$' STRING2 DB 'INPUT SECOND NUM(HEX):',0DH,0AH,'$' STRING3 DB 'THE RESULT IS(HEX):',0DH,0AH,'$' NUM1 DW 0,0 ;存放加数1 NUM2 DW 0,0 ;存放加数2 RESULT DB 0,0,0,0 ;存放结果 DATA ENDS

CODE SEGMENT

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

LEA DX,STRING1 ;输入第一个加数(4 位十六进制数) MOV AH,9 INT 21H MOV SI,2 MOV CX,8

CONT: PUSH CX CMP CX,4 JNZ B1 SUB SI,2

B1: MOV CL,4 SHL NUM1[SI],CL C1: MOV AH,1 INT 21H

CMP AL,'0' JB C1

CMP AL,'F' JA C1

CMP AL,'A' JB A1 SUB AL,7

A1: SUB AL,30H MOV AH,0

ADD NUM1[SI],AX POP CX

LOOP CONT

MOV DL,0DH ;回车换行 MOV AH,2 INT 21H

MOV DL,0AH INT 21H

LEA DX,STRING2 ;输入第二个加数(4 位十六进制数)MOV AH,9 INT 21H MOV SI,2 MOV CX,8

CONT1: PUSH CX CMP CX,4 JNZ B2 SUB SI,2

B2: MOV CL,4 SHL NUM2[SI],CL C2: MOV AH,1 INT 21H CMP AL,'0' JB C2

CMP AL,'F' JA C2

CMP AL,'A' JB A2 SUB AL,7

A2: SUB AL,30H MOV AH,0

ADD NUM2[SI],AX POP CX

LOOP CONT1

MOV DL,0DH ;回车换行 MOV AH,2


微机课后习题答案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2018学年浙江省湖州市南浔区九年级(上)期末数学试卷-普通

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

马上注册会员

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