资源描述:
《微原课设 冒泡排序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、武汉理工大学《微机原理》课程设计报告书课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目:冒泡排序要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)键盘输入一组十进制数,用冒泡排序由小到大排序后输出显示时间安排:1.9课设题目,设计内容;1.9—1.10查资料,算法、方案设计。1.1—1.13(硬)软件设计1.14—1.15调试程序1.16—1.17写课设报告1.18答辩指导教师签名:年月日系主任(或责任教师)签名:年月日12武汉理工大学《微机原理》课程设计报告书1课程设计题目及要求题目:冒泡排序题目要求:键盘输入一组十进
2、制数,用冒泡排序由小到大排序后输出显示程序设计要求:1)遵循模块化、结构化的程序设计方法。2)要求程序必须正确。3)程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。4)要求程序结构合理,语句使用得当。5)适当追求编程技巧和程序运行效率。2课题分析及设计思路冒泡排序:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可
3、能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。此次课程设计中,冒泡排序是从大到小进行排序.通过主程序对子程序的调用来完成输入输出,排序,循环,转化等功能。12武汉理工大学《微机原理》课程设计报告书3程序主要流程图NN外循环计数器DX-1DX=0结束开始初始化I=0地址加2数i>=数i+1两数交换位置内循环计数器CX-1CX=04程序主要代码与分
4、析12武汉理工大学《微机原理》课程设计报告书datasegmentnumdw50dup(?)countdw10flag1db0;符号标志flag2db0;首位0标志mess1 DB'INPUT10NUMBERS',0AH,0DH,'$' mess2 DB'ERRORS',0AH,0DH,'$'mess3 DB'SOURCE:',0AH,0DH,'$'mess4DB'RESULT:',0AH,0DH,'$'dataendsprognamsegmentmainprocfarassumecs:prognam,ds:datastart:pushds;把原数据存
5、放到段寄存器subax,axpushaxmovax,datamovds,axredo:callinput;输入原始数据cmpax,-1d ;判断是否出错jeredo;出错,退出leadx,mess3movah,09;9号调用,显示字符串,请求输出数据int21hcalloutput;输出原始数据callbubblesort ;对原始数据进行冒泡排序12武汉理工大学《微机原理》课程设计报告书leadx,mess4movah,09;9号调用,显示字符串,请求输出数据int21hcalloutput;输出排序后的数据movah,7int21hmovah,4chint
6、21hmainendpinputproc;输入原始数据leadx,mess1movah,09int21h;9号调用,显示字符串,请求输入数据callcrlf;回车,换行movsi,0movcx,countenter1:calldecibindeccxcmpdl,',';进行分隔符判断,以逗号为分隔符jestorecmpdl,13;进行换行判断jeexit2jneerrorstore:movnum[si],bx;将BX中的二进制数存储到num中addsi,2 jmpenter1error:callcrlf;输出报错信息leadx,mess2movah,09;
7、9号调用,显示字符串,输入数据12武汉理工大学《微机原理》课程设计报告书int21hcallcrlfmovax,-1d ;以AX中的值作为出错标志jmpexit3exit2:movnum[si],bx;将BX中内容存入以num为首的存储单元中callcrlf;回车换行exit3:retinputendpbubblesortproc;将num[]中存储的数进行冒泡排序movcx,count;初始化计数器CXdeccxlg1:movdi,cx;保存CX的值movsi,0lg2:movax,num[si];相邻的两数进行比较大小cmpax,num[si+2]jle
8、lg3xchgax,num[si+2]