欢迎来到天天文库
浏览记录
ID:15746115
大小:17.02 KB
页数:3页
时间:2018-08-05
《排序法实汇编编程实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二排序程序设计编程训练一.实验目的和要求1.利用分支、循环、子程序调用等基本程序结构实现排序程序2.掌握综合程序的设计、编制及调试方法二.实验算法1.,从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较……若第N-1个数大于第N个数则两者交换,否则不交换,知道饿N个数的相邻两个数都比较完为止,此时N个数中最小数将被排在N个数的最前列2,对剩下的N-1个数重复第一步,照到N-1个数中的最小数3,重复第二步,直到N个数全部排好序为止三.实验流程图BX=0,CX进栈开始给数组赋值,CX=0数组
2、第一个数是否大于第二个数N两个数互换YBX+1,指向数组下一个数BX<9第一次大循环结束,最小的数到最后一位,CX出栈CX>0YN两次循环结束,已经按从大到小排好输出结果,结束四.程序清单.MODELSMALL.STACK200H.DATANUMDB1,2,3,4,6//十个要排序的数DB9,8,7,5,0.CODESTART:MOVAX,@DATAMOVDS,AXMOVCX,10LOOP2:MOVBX,0//设定BX为项数PUSHCXLOOP1:MOVAL,NUM[BX]//首先将第一个和第二个数比较MOVAH,NUM[BX+1]//如果第一个大于等于第二个
3、则跳转CMPAL,AHJNLNEXT1MOVNUM[BX],AH//否则这两个数对调MOVNUM[BX+1],ALNEXT1:INCBX//每次BX+1后返回LOOP1,直到BX大于等于9CMPBX,9JBLOOP1//第一轮比较的结果是将最小的数放到后面POPCXLOOPLOOP2//两个循环都结束代表排序完成MOVCX,10MOVSI,0DISPL:MOVAH,02H//用INT21H的02功能输出排好的数组MOVDL,NUM[SI]ADDDL,30HINT21HINCSILOOPDISPLMOVAX,4C00H//结束程序INT21HENDSTART五.
4、实验结果与分析实验的初始数据是1、2、3、4、6、9、8、7、5、0,执行后变为9876543210,由大至小排列六.实验体会和建议本实验设计完成了数组的排序工作,成功的将输入的初始数组排序,并将结果输出,完成了实验的要求。实验本身考察对冒泡法排序的掌握,恰当的运用所学的冒泡法排序就能解决这个问题七.主要仪器设备计算机
此文档下载收益归作者所有