多做题,通过考试没问题!

汇编语言程序设计

睦霖题库>大学试题(计算机科学)>汇编语言程序设计

一个有符号字数组以0为结束标志,求这个数组的:最大值、最小值、平均值。

正确答案: DATASEGEMNT
LIST DW -56,+12,88,-126,-5,16,32,-99,72,-18,0
MIN DW ?
MAX DW ?
AVG DW ?
DATA ENDS
CODESEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV MIN,32767;将32767假设为最小的数
MOV MAX,-32768;将-32768假设为最大的数
MOV AVG,0;AVG用作累加器,清零
LEA SI,LIST
MOV CX,0
AGAIN:
MOV AX,[SI]
CMP AX,0
JZ DONE;找到零元素,转DONE结束处理
INC CX;纪录非零元素个数
ADD AVG,AX;累加
CMP AX,MIN
JGE SKIP1
MOV MIN.AX;比预设最小值还小,保留
SKIP1:
CMP AX,MAX
JLE SKIP2
MOV MAX,AX;比预设最大值还大,保留
SKIP2:
ADD SI,2
JMP AGAIN
DONE://JCXZNULL;元素个数为零,转NULL处理
MOV AX,AVG
CWD
IDIV CX
MOV AVG,AX;计算平均值
JMP EXIT
NULL:MOV MIN,0;元素个数为0,将“最大值”、“最小值”
MOV MAX,0;“平均值”清零
MOV AVG,0
EXIT:MOV AX,4C00H
INT 21H
CODEENDS
END START
答案解析:
进入题库查看解析

微信扫一扫手机做题