资源描述:
《汇编--bubblesort(冒泡排序)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、实验目的1.掌握循环程序的设计方法;2.了解循环结构在程序中的重要作用起泡排序程序。二、实验原理及基本技术路线图(方框原理图)循环结构分DO_WHILE和DO_UNTIL两种,无论使用哪种循环结构,循环程序一般应包括以下几部分:①循环初始化。它包括设置循环次数的初始值、地址指针的初始设置等。②循环体。这是循环工作的主体,包括要重复执行的操作,以及循环的修改部分。修改部分包括地址指针的修改、循环控制条件的修改等。③循环控制部分。它是控制循环的关键,判断循环条件满足与否。特别要注意循环入口和循环次数的正确设置、地址指针及循环控制条件的修改等。否则会得不到期望的结果。以下为冒泡算法的流程图:-1
2、3-开始CX=0?Ai≥Ai+1结束AióAi+1置内循环次数àCXDI=0?修改外循环次数DI-1àDI初始化循环次数àDI置地址指针修改内循环次数CX-1àCX修改地址指针指向下一元素三、所用仪器、材料(设备名称、型号、规格等)1.操作系统平台:WindowsServer20032.汇编环境:MicrosoftMASM5.03.文本编辑器:记事本四、实验方法、步骤1.将MASM5.0的文件置于C:assembly目录下;2.将masm.exe和link.exe所在目录(C:assemblyMASM5)添加到Path环境变量中;-13-3.在C:assembly下新建一个bubb
3、le.asm文件,打开bubble.asm,输入汇编程序代码;4.运行一个命令行窗口,将当前目录切换到C:assembly,然后输入命令:masmbubble.asm[Enter],来汇编程序,根据汇编结果查看程序代码是否有语法错误,如有,则更正保存后重新汇编,直至没有错误为止,此时会生成bubble.obj文件;5.输入命令:linkbubble.obj[Enter],观察输出结果,如果没有错误,则生成bubble.exe;6.输入命令:debugbubble.exe[Enter],调试程序,并记录运行过程;7.完成实验报告。五、实验过程原始记录(数据、图表、计算等)1.将C:asse
4、mblyMASM5目录添加到Path环境变量中:2.新建名为bubble.asm的文件,输入汇编程序代码:-13-程序源码:STACKSGSEGMENTSTACK'S'DW64DUP('ST')STACKSGENDSDATASEGMENTARYDW5,7,1,4,3,6,9,8,2;数组,流程图中为ACTEQU($-ARY)/2;元素个数DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSGMAINPROCFARMOVAX,DATAMOVDS,AXMOVDI,CT-1;初始化外循环次数LOP1:MOVCX,DI;置内循环次数MOVBX,0;置地
5、址指针LOP2:MOVAX,ARY[BX]CMPAX,ARY[BX+2];两数比较JGECONT;次序正确转-13-XCHGAX,ARY[BX+2];次序不正确互换位置MOVARY[BX],AXCONT:ADDBX,2;修改地址指针LOOPLOP2;内循环控制DECDI;修改外循环次数JNZLOP1;外循环控制MOVAX,4C00HINT21HMAINENDPCODEENDSENDMAIN3.汇编源程序:4.连接生成可执行文件:-13-5.调试程序:(1)初始化外循环次数(DI)=0008H(2)置内循环次数和地址指针(3)第一趟第一次比较,因为5<7,故互换位置,进行下一次比较-13-(5)
6、修改地址指针,继续内循环(6)第一趟第二次比较,因为5>1,故直接更改地址指针,进行下一次比较-13-(7)第一趟第三次比较,因为1<4,故互换位置,进行下一次比较(8)第一趟第四次比较,因为1<3,故互换位置,进行下一次比较-13-(9)第一趟第五次比较,因为1<6,故互换位置,进行下一次比较(10)第一趟第六次比较,因为1<9,故互换位置,进行下一次比较(11)第一趟第七次比较,因为1<8,故互换位置,进行下一次比较-13-(12)第一趟第八次比较,因为1<2,故互换位置(13)第一趟循环结束,最小数1被交换至数组的最后位置(14)第二趟循环结束,次小数2被交换至数组的倒数第二个位置-13
7、-(15)第三趟循环结束,数字3归位(16)第四趟循环结束,数字4归位(17)第五趟循环结束,数字5归位-13-(18)第六趟循环结束,数字6归位(19)第七趟循环结束,数字7归位(20)第八趟循环结束,数字8归位-13-(21)第九趟循环结束,数字9归位(22)排序结束,程序退出六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸)1.在进行循环程序设计时,要