一、实验目的和要求
排序是数据处理中常见的操作,就是把记录按照排序码递增或递减次序依次排列。排序方法有多种方法,例如插入排序法、选择法排序、交换排序、冒泡排序等。本例实验掌握起泡排序程序编制方法。
二、实验内容和原理
有一个首地址为A的N字数组,编制程序使该数组中的数按照从大到小的次序排列。这里采用起泡排序算法,从第一个数开始依次对相邻两个数进行比较。如次序对,则不做任何操作;如次序不对,则使两个数交换位置。
三、实验环境
实验室提供硬件环境。软件环境:WINDOWS98/2000、MASM.EXE、LINK.EXE等。
四、算法描述及实验步骤
1、分析问题并绘制流程图:
2、启动WINDOWS记事本,编写汇编源代码。保存在masm文件夹中,文件名: chp5.asm
3、调试、编译:
编译、并启动DEBUG调试源代码。
C:\masm chp5.asm
C:\ masm chp5.obj<CR>
C:\ debug chp5.exe<CR>
-d<CR>
如图所示:
五、实验结果
结果正确、编译、保存。符合实验要求,达到实验目的
六、总结
通过本次实验,我们初步掌握冒泡排序子程序的编制及调用方法。
附录
DATA ENDS
PROGRAM SEGMENT
MAIN PROC FAR
ASSUME CS:PROGRAM,DS:DATA
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,N
DEC CX
LOOP1: MOV DI,CX
MOV BX,0
LOOP2: MOV AX,A[BX]
CMP AX,A[BX+2]
JGE COTINUE
XCHG AX,A[BX+2]
MOV A[BX],AX
COTINUE: ADD BX,2
LOOP LOOP2
MOV CX,DI
LOOP LOOP1
RET
MAIN ENDP
PROGRAM ENDS
END START