汇编实现冒泡排序
【摘要】 一、题目汇编程序实现冒泡排序二、要求片内RAM30H开始的32个单元中分布着随机的有符号8位二进制数,按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据)三、过程及结果记录1. 在程序存储器中构建一个TABLE,该表格具有32个随机产生的8位二进制数,如:TABLE :DB 1,3,9,2,17,4,11,6 ...
一、题目
汇编程序实现冒泡排序
二、要求
片内RAM30H开始的32个单元中分布着随机的有符号8位二进制数,按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据)
三、过程及结果记录
1. 在程序存储器中构建一个TABLE,该表格具有32个随机产生的8位二进制数,如:TABLE :DB 1,3,9,2,17,4,11,6
DB 5,20,100,64,21,14,79,35
DB 92,7,91,23,65,16,13,18
DB 18,73,65,101,27,19,62,69
2. 利用查表指令“MOVC A,@A+DPTR”分别将表格中的数字读取到30H~4FH单元中。
3. 使用“冒泡排序法”将它们排序即可。“冒泡排序法”的基本原理是:
遍历所有32个数据找出其中最大者,并记下最大数据所在存储位置,然后将这个最大数据放置在最后一个单元,同时,将最后一个单元原来的数据保存到这个最大值原来所处的位置,完成第一轮排序。
4. 遍历除了最后一个单元以外的前面31个单元的数据并找出其中最大者,并记下其所在位置。遍历完这一遍后将找到的最大数据保存在倒数第二个单元,并将倒数第二个单元原来的数据保存在刚刚找到的那个最大值原来所在的位置处,完成第二轮排序。依次类推,用同样的方法把所有的数据排好序即可。每一轮将会把当前还未排序的最大的数冒出,因此一共需要冒泡31轮。
冒泡排序的实验结果如下:
图1:排序结果
实验整体思路如下:
图2:实验思路
四、实验源程序
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)