冒泡排序程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

苏州大学_城市轨道交通学院_10通信_蔡露_1042401011SchoolofUrbanRailTransportation,SoochowUniversity单片机实验报告1排序程序冒泡排序程序一.实验目的掌握控制转移指令的功能,以及冒泡排序法原理二.实验内容设30H开始的10个存储单元中,存放的是无符号数,编写程序实现:将30H开始的10个数排序,存到40H开始的单元中。三.实验流程图开始R4←外循环次数R3←内循环次数R0←缓冲区首地址((R0))←→((R0)+1)R0←(R0)+1(R3)-1=0?(R4)-1=0?R0←30HR1←31H((R1))←((R0))((R0))←((R0)+1)((R1))←((R1)+1)(R7)-1=0?结束B←((R0))A←((R0)+1)(A)≥(B)?YNNYNYNY苏州大学_城市轨道交通学院_10通信_蔡露_1042401011SchoolofUrbanRailTransportation,SoochowUniversity单片机实验报告2排序程序四.源程序设计ORG0000HSJMPSTARTSTART:MOV30H,#07HMOV31H,#02HMOV32H,#00HMOV33H,#05HMOV34H,#03HMOV35H,#09HMOV36H,#08HMOV37H,#06HMOV38H,#01HMOV39H,#04H;存入10个数SORT:MOVR4,#9;外循环次数LOOP1:MOVA,R4MOVR3,A;内循环次数MOVR0,#0030H;设数据指针,R0指向数据表的第一个单元LOOP2:MOVA,@R0;取一个数MOVB,A;第一个数送到BINCR0;R0指向下一个数MOVA,@R0;取第二个数,送到ACLRCMOVR5,ASUBBA,B;比较(A不等于B跳转)JNCUNEXCH;A=B,不交换MOVA,R5DECR0;否则两个数据交换XCHA,@R0INCR0MOV@R0,AUNEXCH:DJNZR3,LOOP2;内循环结束DJNZR4,LOOP1;外循环结束SJMPMAINMAIN:MOV40H,30HMOV41H,31HMOV42H,32HMOV43H,33HMOV44H,34HMOV45H,35HMOV46H,36HMOV47H,37HMOV48H,38HMOV49H,39H苏州大学_城市轨道交通学院_10通信_蔡露_1042401011SchoolofUrbanRailTransportation,SoochowUniversity单片机实验报告3排序程序END五.程序调试过程及结果1.分别把7、2、0、5、3、9、8、6、1、4存放到30H开始的10个单元中,存放之后结果如下:2.第一轮排序之后,由于27,所以30H里的内容与31H里的内容交换,结果如下:3.排序结束之后的结果:4.把30H单元开始的内容存放到40H之后的结果:苏州大学_城市轨道交通学院_10通信_蔡露_1042401011SchoolofUrbanRailTransportation,SoochowUniversity单片机实验报告4排序程序六.实验总结1.通过本次实验,掌握了keil的汇编语言调试方法2.学会了控制转移指令,冒泡排序法的功能和使用方法3.本实验参考书本P121【例5-11】,但书本的程序有错误,书本程序SUBBA,B;JNCUNEXH;后存储器A中的值已经改变,不再是30H中的某个数。应该在比较后把A还原到比较前的值。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功