[考试]循环程序设计:冒泡排序(并求平均值).docx

上传人:聆听****声音 文档编号:563007 上传时间:2023-04-29 格式:DOCX 页数:9 大小:16.65KB
下载 相关 举报
[考试]循环程序设计:冒泡排序(并求平均值).docx_第1页
第1页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第2页
第2页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第3页
第3页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第4页
第4页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第5页
第5页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第6页
第6页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第7页
第7页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第8页
第8页 / 共9页
[考试]循环程序设计:冒泡排序(并求平均值).docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

[考试]循环程序设计:冒泡排序(并求平均值).docx

《[考试]循环程序设计:冒泡排序(并求平均值).docx》由会员分享,可在线阅读,更多相关《[考试]循环程序设计:冒泡排序(并求平均值).docx(9页珍藏版)》请在冰点文库上搜索。

[考试]循环程序设计:冒泡排序(并求平均值).docx

;循环程序设计:

冒泡排序(并求平均值)(8086汇编)vipxxl@

;中南大学微机原理与接口技术实验8086汇编;原题实验三循环程序设计;编写一段程序,在数据段的十个数据单元中,定义20个8位无符号数(或键盘输入)。

;找出最大数和最小数,分别送到MAX和MIN单元中。

显示原始数据、最大值、最小值。

DATA SEGMENT;数据段

DA1DW20DUP(?

DA2DB ' PLEASE INPUT20NUMBERS(00~99) :

 ',0DH,0AH,' $' DA3DB ' NUMBERS BEFOR SORT:

',0DH,0AH,' $' DA4DB0DH,0AH,' NUMBERS AFTER SORT:

 ',0DH,0AH,' $' DA5DB0DH,0AH,' THE MAXNUMBER IS:

 ',0DH,0AH,' $' DA6DB0DH,0AH,' THE MIN NUMBER IS:

 ',0DH,0AH,' $' DA7DB0DH,0AH,' PRESS ANY KEY TO QUIT:

 ',0DH,0AH,' $' DA8DB ' PLEASE INPUT NUMER ',' $' DA9DB ' :

 ',' $'

DA10DB0DH,0AH,' THE AVERAGE VALUE IS:

',0DH,0AH,' $' DAT1DW3230H,3139H,3138H,3137H,3136H,3135H,3134H,3133H,3132H,3131H DW3130H,3039H,3038H,3037H,3036H,3035H,3034H,3033H,3032H,3031H DAT2DB0DH,0AH,' WRONG NUMBER!

',0DH,0AH,' $' DATA ENDS

STACK SEGMENT STACK;堆栈段ST1DB100DUP(?

STACK ENDS

CODE SEGMENT;代码段

MAIN PROC FAR

ASSUME CS:

 CODE,DS:

 DATA,SS:

 STACK START:

 MOV AX,STACK;送堆栈段地址MOV SS,AX

PUSH DS;返回DOS

MOV AX,0

PUSH AX

MOV AX,DATA;送数据段段地址MOV DS,AX

MOV DX,OFFSET DA2;提示输入信息MOV AH,9

INT21H

LEA DI,DA1;数组首地址

MOV CX,20;循环次数20

TIP1:

 MOV AH,9;提示输入第N个数MOV DX,OFFSET DA8

INT21H

LEA SI,DAT1

SUB SI,2

ADD SI,CX

 ADD SI,CX

MOV BX,[SI]

MOV DL,BH

MOV AH,2

INT21H

MOV DL,BL

MOV AH,2

INT21H

MOV AH,9

MOV DX,OFFSET DA9

INT21H

INPUT:

 MOV AH,1;输入十位数INT21H

CMP AL,30H;防误输入

JB TIP2

CMP AL,39H

JG TIP2

MOV BH,AL

MOV AH,1;输入个位数

INT21H

CMP AL,30H;防误输入

JB TIP2

CMP AL,39H

JG TIP2

MOV BL,AL

MOV[DI],BX;将输入的数字存放到内存ADD DI,2;指向下一个数

MOV AH,2;回车

MOV DL,0AH

INT21H

LOOP TIP1;循环

JMP NEXT1;循环结束,跳转TIP2:

 MOV AH,9;提示错误信息MOV DX,OFFSET DAT2

INT21H

JMP TIP1;跳转,重新输入NEXT1:

 MOV DX,OFFSET DA3;提示排序前数组MOV AH,9

INT21H

MOV CX,20

MOV DI,OFFSET DA1

OUT1:

 MOV DX,[DI];输出排序前数组MOV BX,DX

MOV DL,BH;输出十位数

 MOV AH,2

INT21H

MOV DL,BL;输出个位数

MOV AH,2

INT21H

MOV AH,2

MOV DL,20H;空格

INT21H

ADD DI,2

LOOP OUT1;循环

SORT:

 MOV CX,19;排序,设计数器CX,内循环次数LEA BX,DA1

L1:

 MOV DX,CX;设计数器DX,外循环次数L2:

 MOV AX,[BX];取相邻两个数CMP AX,[BX+2];若前一个小于后一个,跳转JB CONT1

XCHG AX,[BX+2];否则两数交换MOV[BX],AX

CONT1:

 ADD BX,2;内循环

LOOP L2

MOV CX,DX;外循环次数->CXMOV BX,0;地址返回第一个数据LOOP L1;外循环

MOV CX,20

MOV DX,OFFSET DA4;提示输出信息MOV AH,9

INT21H

LEA DI,DA1

OUT2:

 MOV AH,2;输出排序后的数组MOV DX,[DI]

MOV BX,DX;输出十位数

MOV DL,BH

MOV AH,2

INT21H

MOV DL,BL;输出个位数

MOV AH,2

INT21H

MOV AH,2

MOV DL,20H

INT21H

ADD DI,2

LOOP OUT2;循环输出

OUT3:

 MOV DX,OFFSET DA5;输出最大数MOV AH,9

 INT21H

LEA DI,DA1

MOV AH,2

MOV DX,[DI+38]

MOV BX,DX

MOV DL,BH

MOV AH,2

INT21H

MOV DL,BL

MOV AH,2

INT21H

MOV AH,2

MOV DL,20H

INT21H

MOV DX,OFFSET DA6;输出最小数MOV AH,9

INT21H

LEA DI,DA1

MOV AH,2

MOV DX,[DI]

MOV BX,DX

MOV DL,BH

MOV AH,2

INT21H

MOV DL,BL

MOV AH,2

INT21H

MOV AH,2

MOV DL,20H

INT21H

AVE1:

 LEA DI,DA1;算平均值MOV CX,20

MOV BX,0

AVE2:

 MOV AX,[DI];循环计算20数之和PUSH AX;ASCII转16进制数

SUB AH,30H;高位转BCD码

MOV AL,AH

PUSH CX

MOV CL,10;高位乘以10

MUL CL

POP CX

MOV DX,AX

POP AX

SUB AL,30H;低位转BCD码

 MOV AH,0H

ADD AX,DX;十位数和个位数合并ADD BX,AX

ADD DI,2

LOOP AVE2;循环

MOV AX,BX

MOV BL,20;除以20求平均数DIV BL

MOV AH,0;注意!

不然会发生divide overflow MOV BL,10;16进制转非压缩BCD码DIV BL

XCHG AH,AL

OUT4:

 PUSH AX;输出平均值MOV DX,OFFSET DA10

MOV AH,9

INT21H

POP AX

PUSH AX

ADD AH,30H

MOV DL,AH

MOV AH,2

INT21H

POP AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT21H

FINISH:

 MOV DX,OFFSET DA7;结束MOV AH,9

INT21H

MOV AH,8

INT21H

RET

MAIN ENDP

CODE ENDS

END START

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2