搜索
您的当前位置:首页正文

汇编语言求平均数

来源:哗拓教育


;--------------------------------------------;

;Name:平均数计算 ;

;Desccription:连续输入十个10以下的数,程序计-;

;算去掉一个最小数,去掉一个最大数后八个数的平;

;均值,从显示器显示出来,结果保留3位小数-----;

;Author:160409108 ;

;Date: 2011-11-12 ;

;--------------------------------------------;

DATA SEGMENT

BUF DB ?

ORG 10H

TABLE DB ?

BUF1 DB 'PLEASE ENTER 10 NUMBERS$'

BUF2 DB 'THE AVERAGE IS$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

LEA DX,BUF1

MOV AH,9

INT 21H ;显示提示信息‘MOV AH,02H

MOV DL,0AH

INT 21H ;换行

PLEASE ENTER 10 NUMBERS’

MOV CX,10

LEA DI,BUF

LP1: ;连续输入10个数

MOV AH,1

INT 21H

SUB AL,30H MOV [DI],AL

INC DI

MOV DL,20H MOV AH,02H

INT 21H

LOOP LP1

MOV CH,10

;asc码转bcd码

;输入中插入空格

DEC CH

LOP0:MOV SI,OFFSET BUF ;冒泡排序法

MOV CL,CH

XOR BL,BL

LOP1:MOV AL,[SI]

CMP AL,[SI+1]

JLE NEXT

XCHG AL,[SI+1]

MOV [SI],AL

OR BL,01H

NEXT: INC SI

DEC CL

JNZ LOP1

AND BL,BL

JZ STOP

DEC CH

JNZ LOP0

STOP:

MOV SI,OFFSET BUF

MOV DI,OFFSET TABLE

INC SI ;从第二个数开始存数据

MOV CX,8

MOV AX,0

LOP3:

ADD AL,[SI] ;相加得到和

INC SI

LOOP LOP3

MOV [DI],AL MOV CL,8 DIV CL INC DI

MOV [DI],AL INC DI

MOV [DI],AH MOV AL,AH MOV AH,0

MOV CX,3

LOP4:

MOV BL,10

;和存入DL

;CL=8

;AX/CL 商>AL 余数>AH

;商

;余数

;余数存入AL

MUL BL ;余数x10

MOV BH,8

DIV BH ;除8求商求余

INC DI

MOV [DI],AL

INC DI

MOV [DI],AH

MOV AL,AH

MOV AH,0

LOOP LOP4

MOV DI,OFFSET TABLE

MOV AH,02H MOV DL,0AH

;换行

INT 21H

LEA DX,BUF2

MOV AH,9

INT 21H ;显示提示信息‘THE AVERAGE IS’

MOV AH,02H

MOV DL,0AH

INT 21H ;换行

MOV DL,[DI+1] ;依次显示数据

ADD DL,30H ;个位数

MOV AH,2

INT 21H

MOV DL,2EH ;小数点

MOV AH,2

INT 21H

MOV DL,[DI+3] ADD DL,30H

MOV AH,2

INT 21H

MOV DL,[DI+5] ADD DL,30H

MOV AH,2

INT 21H

MOV DL,[DI+7] ADD DL,30H

MOV AH,2

INT 21H

;第一位小数

;第二位小数

;第三位小数

MOV AH,4CH ;返回DOS

INT 21H

CODE ENDS

END START

因篇幅问题不能全部显示,请点此查看更多更全内容

Top