试题详情
简答题一个有符号字数组以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
  • 关注下方微信公众号,在线模考后查看

热门试题