- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编冒泡 排序
汇编大作业之冒泡排序
班 级:
学 号:
姓 名:
设计日期
西安科技大学计算机学院冒泡排序
实验目的
熟悉并能够掌握汇编语言的程序设计及程序调试
实验内容
冒泡排序实现从键盘输入的10个数字的降序排列.
1、冒泡排序的思想:
冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。
冒泡排序法的基本过程如下:
首先,从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小,若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序,显然,在扫描过程中,不断地将两个相邻元素中的大者往后移动,最后就将线性表中的最大者换到了表的最后;
然后,从后到前扫描剩下的线性表,同样,在扫描过程中逐次比较相邻两个元素的大小,若相邻两个元素中,后面的元素小于前面的元素,则将它们互换,这样就又消去了一个逆序,显然,在扫描过程中,不断地将两相邻元素中的小者往前移动,最后就将剩下线性表中的最小者换到了表的最前面;
对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时的线性表已经变为有序。
在上述排序过程中,对线性表的每一次来回扫描,都将其中的最大者放到了表的最后,最小者像气泡一样冒到表的开头,因此这种排序叫做冒泡排序。
2、debug相关知识
命令 格式 命令 格式
汇编 A [地址] 命名 N [设备:][路径]文件名[.扩展名]
比较 C [范围] 输出 O 口地址
转出 D [范围]或[地址] 继续执行 P [=地址][值]
键入 E 地址[表] 退出 Q
填入 F 范围表 寄存器 R [寄存器]
执行 G [=地址][地址[地址...]] 搜索 S 范围表
十六进制 H 值 值 跟踪 T [=地址]或[范围]
输入 I 口地址 反汇编 U [地址]或[范围]
装入 L [地址][设备扇区,扇区]] 写 W [地址[设备扇区,扇区]]
3、参加测试的10个数据:
1,2,3,5,4,26,9,3,0
三、程序流程图
四、冒泡汇编源程序
DATA SEGMENT
A DW 12H,13H,14H,15H,16H,17H,18H,19H,20H,22H
Z DW 6
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:PUSH DS
SUB AX , AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,Z
CALL FAR PTR MAIN
MOV AH,4CH
INT 21H
MAIN PROC FAR
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
CODE ENDS
END START
五、运行结果
生成obj文件,生成exe文件,进行调试
输入测试数据
六、实验总结
综合型实验最锻炼我们的能力,做的过程中每实现一个小功能都很有成就感,遇到难题,大家一切讨论共同提高,收益颇多,熟悉了汇编编程的BEGUG过程,了解掌握汇编程序设计的方法步骤,与此同时,也暴露出学习中的盲点,弥补了不足。
I=I+1
AI ←→AI+1
N
AI=AI+1?
Y
I←0
(COUNT2)←(COUNT1)
(COUNT1)←1
开始
(COUNT2)=0?
(COUNT1)←(COUNT1)-1
(COUNT1)=0?
(COUNT2)←(COUNT2)-1
结束
Y
Y
Y
Y
文档评论(0)