实验三、交换标志位法排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:三、数据块排序实验日期:2010.5.29得分:
同组人:不填指导教师:马惠兰
一、实验目的
1.熟练掌握Keil uvision3单片机仿真软件的使用方法。

2.进一步熟悉单片机实验操作步骤。

3.掌握分别用双循环法、交换标志位法和求极值法实现数据块排序的编程方法和技巧。

4.掌握Keil uvision3软件内RAM单元数据查看和修改的命令和方法。

二、实验设备
PC机一台
三、实验内容
在起始地址为60H的内RAM数据存储区中,连续存放有10个无符号数,编程将其由大到小排序。

四、实验原理
本人采用交换标志位法实现上述实验内容。

用交换标志位法实现无符号数据块排序,需要设置一个交换标志位,实验中选择PSW的b5位——F0,F0=0表示数据比较大小时没有交换,F0=1表示数据比较大小时有交换。

循环初始化置F0为0,第1次大循环数据块中的10数据两两比较9次,两个数据比较大小,若第一个数大于第二个数,则不变,若第一个数小于第二个数,则交换,并且置F0=1;这样比较到最后,最后一个单元中存放的应该是参加排序的数据块中最小的数据。

然后判断F0的状态,若F0=0,则说明一次交换都没有,数据块已经排好序了;若F0=1,则说明至少有一次交换,数据块还没有排好序,需要继续进行排序操作。

第2次大循环时,F0又置初值0,但参加排序的数据只有9个(10个数据中的最小数已经排在了最后一个单元),循环次数变成了8次,循环结束后同样判断F0的状态,以判断数据块是否排好序,是否再进行排序操作。

如此循环,直到某一次大循环结束后,判断发现F0为0时,则说明数据块排好序了。

用交换标志位法实现无符号数据块排序,必须注意一种情况,就是最后只剩下最上面的两个数据排序时,若比较后交换标志位F0=1,排序也结束,因为所有数据都排序好了。

这种情况两个数据的比较次数等于用双循环法排序时两个数据的比较次数。

根据此实验原理编写的实验源程序清单见附页。

五、实验步骤
1.在F盘下为工程建立文件夹马惠兰3;
2.新建工程项目文件马惠兰
3.uv2,保存在文件夹马惠兰3中,并为工程选择目标器件为
SST89E554RC;
3.编辑源程序,建立源文件马惠兰3.ASM,保存在文件夹马惠兰3中;
4.将源文件马惠兰3.ASM添加到工程项目组中;
5.设置调试环境,选择调试模式为软件模拟;
6.加载程序,打开存储器窗口,在地址栏中输入:“D:60H”回车,修改内RAM60H单
元开始的10个单元数据,运行程序,根据预习设计的数据记录表格记录实验数据;7.修改源程序,将指令“JNC NEXT”改为“JC NEX T”,保存、汇编后重新加载运
行程序,记录实验数据;
8.实验数据经过实验指导教师检查正确后,实验结束。

实验数据记录见附页。

六、实验结果分析(自己写)
七、心得体会(自己写)。

相关文档
最新文档