冒泡排序,正向+逆向汇,编语言课程设计..docVIP

  • 8
  • 0
  • 约9.55千字
  • 约 16页
  • 2017-01-11 发布于重庆
  • 举报

冒泡排序,正向+逆向汇,编语言课程设计..doc

冒泡排序,正向逆向汇,编语言课程设计.

皖西学院 课 程 设 计 报 告 设计题目: 汇编冒泡排序算法分析 名 称: 微机原理与接口课程设计 班 级: 信息工程学院 姓 名: 学 号: 设计时间: 2011-12-16 至 2011-12-25 指导教师: 评 语: 评阅成绩: 评阅教师: 一、课程设计的性质和目的: 通过课程设计,进行程设计方法和技能的基本训练,巩固在课堂上学到的有 关软件程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉 汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言 程序的水平。 二、课程设计的要求: 1、遵循模块化、结构化的程序设计方法。 2、要求程序必须正确。 3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。 4、要求程序结构合理,语句使用得当。 5、适当追求编程技巧和程序运行效率。 三、主要仪器设备及软件: PC机、MASM汇编软件。 四、课程设计题目及要求: 题目:汇编冒泡排序算法分析 要求:用汇编语言编写冒泡排序的算法,并比较冒泡排序正向和逆向排序的 算法的优缺点和适用情况。 五、课题分析及设计思路: 冒泡排序: 依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟: 首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2 个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两 个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最 后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3 个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放 后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第 二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列 中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。 冒泡排序可分为正向和逆向两种排序.通过主程序对子程序的调用来 完成输入输出,排序,循环,转化等功能。 六、程序主要流程图: 七、程序主要代码与分析(关键代码要有注释): BUF为首址的字符区存放10个无符号数,从大到小进行排序(逆向) data segment buf dw 3,-4,6,7,9,2,-8,-10,20,0 data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov cx ,10 dec cx lop1:mov dx,cx mov bx,0 lop2:mov ax,buf[bx] cmp ax,buf[bx+2] jge lop3 xchg ax ,buf[bx+2] mov buf[bx],ax lop3:add bx,2 dec cx jne lop2 mov cx ,dx loop lop1 mov ah,4ch int 21h code ends end start 逆向排序程序截图: 将4,6,7,9,2,0,3,8,10,20按降序排序 第一轮: 4 6 7 9 2 0 3 8 10 20 6 4 7 9 2 0 3 8 10 20 6 4 7 9 2 0 3 8 10 20 6 4 9 7 2 0 3 8 10 20

文档评论(0)

1亿VIP精品文档

相关文档