内容发布更新时间 : 2025/6/24 2:21:03星期一 下面是文章的全部内容请认真阅读。
精品文档
实验内容:
用“冒泡“法对一组数300,250,280,240,260,按从小到大的顺序排列。 实验要求:
1.编制程序,对这组数进行排序,并输出原数据及排序后数据; 2.利用DEBUG调试工具,用D0命令,查看排序前后,内存数据的变化;
3. 去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值;
4. 用学过的压栈PUSH和出栈POP指令,将平均值按位逐个输出(即输出263);
5.将平均值263转化为二进制串,并将这组二进制串输出。
6.所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在屏幕上。 程序代码:
DATA SEGMENT ;定义数据段
DT1 DW 300,250,280,240,260
DT2 DB 'what five data input is',0DH,0AH,'$' DT3 DB 'what after rank is',0DH,0AH,'$' DT4 DB 'The max is',0DH,0AH,'$' DT5 DB 'The min is',0DH,0AH,'$'
DT6 DB 'The average is',0DH,0AH,'$'
DT7 DB 'show you the average one by one',0DH,0AH,'$'
DT8 DB 'show you the average in binary form',0DH,0AH,'$' DT9 DB 0DH,0AH,'$' DT0 DB 'B',0DH,0AH,'$' N EQU 5 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA STAT: MOV AX,DATA
MOV DS,AX
;说明代码段、数据段
。
1欢迎下载
精品文档
LEA DX,DT2 MOV AH,09H INT 21H
CALL ZIXU
对数据进行排序:
MOV CX,N-1 MOV DX,1 JM4:PUSH CX MOV CX,N SUB CX,DX LEA SI,DT1
JM3:MOV AX,[SI] CMP AX,[SI+2] JLE JM2
XCHG AX,[SI+2]
XCHG AX,[SI] JM2:ADD SI,2 LOOP JM3 POP CX INC DX LOOP JM4
输出排序后的顺序:
LEA DX,DT3 MOV AH,09H INT 21H CALL ZIXU 输出最大值:
LEA DX,DT4 MOV AH,09H INT 21H
LEA SI,DT1+8 MOV AX,[SI] CALL ZIXU1 输出最小值:
LEA DX,DT5 MOV AH,09H INT 21H
;输出字符串
;调用数据输出过程
;设置N-1轮比较次数 ;比较轮次技术
;排序后最后一个数就是最大值2欢迎下载。
精品文档
LEA SI,DT1 MOV AX,[SI] CALL ZIXU1 输出平均值:
LEA DX,DT6 MOV AH,09H INT 21H
LEA SI,DT1+2 MOV AX,[SI] ADD AX,[SI+2] ADD