|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我想把计算出来的平均值和最大最小值,去掉最大最小之后的平均值都显示出来~不知道怎么弄...
最好有提示说明的eg: the max number is ...
the min number is....
以下是我写的程序:
stack segment stack
db 64dup(0)
stack ends
data segment
ARRAY dw 39,52,12,45,86,95,12,99,88,20
count=($-ARRAY)/2
average dw 0
max dw 0
min dw 0
average2 dw 0
data ends
code segment
assume cs:code ds:data ss:stack
start:
mov ax,0 ;计算当前数组平均值
mov bx,offset ARRAY
mov cx,count
s:add ax,[bx]
inc bx
inc bx
loop s
mov bx,count
div bx
mov [average],ax ;存放平均值
mov bx,offset ARRAY ;找出最小值,并去掉
mov ax,[bx] ;设第一个数为最小
mov cx,count-1
MMIN:inc bx
inc bx
cmp ax,[bx] ;依次比较,如果后面的值比前面的小,则把后一个数的值传递给AX
jbe MIN1
mov ax,[bx]
MIN1:loop MMIN
mov [MIN],ax
mov [bx],0 ;把最小值设置为0
mov bx,offset ARRAY ;找出最大值,并且去掉
mov ax,[bx] ;设第一个数为最大
mov cx,count-1
MMAX:inc bx
inc bx
cmp ax,[bx] ;依次比较,如果后面的比前面的大,则把后一个数的值传递给AX
jae MAX1
mov ax,[bx]
MAX1:loop MMAX
push ax ;把它保存起来
mov [MAX],ax
mov [bx],0 ;把最大值设置为0
mov ax,0 ;计算除去最大最小值后的平均值
mov bx,offset ARRAY
mov cx,count
avg:add ax,[bx]
inc bx
inc bx
loop avg
mov bx,count-2
div bx
mov [average2],ax
mov ax,4c00h
int 21h
code ends
ends start
end |
|