欢迎来到天天文库
浏览记录
ID:56777564
大小:21.50 KB
页数:3页
时间:2020-07-09
《微机原理实验数据排序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、广州大学学生实验报告开课学院及实验室:软件工程实验室418B2013年月日学院计算机科学与教育软件学院年级/专业/班姓名学号实验课程名称微机原理实验成绩实验项目名称数据排序指导老师陶文正一、实验要求给出一组随机数,将此组数据排序,使之成为有序数列二、实验目的了解数据排序的简单算法。三、实验说明有序的数列更有利于查找。本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。四、程序框图Lenequ10datasegmentA
2、rraydb5,2,1,0,2,3,8,6,5,9Changedb0dataendscodesegmentassumecs:code,ds:datastartprocnearmovax,datamovds,axSort:movbx,offsetArraymovcx,Len-1movChange,0Goon:moval,byteptr[bx]incbxcmpal,byteptr[bx]jngNext;前小后大,不交换movChange,1;前大后小,置交换标志movah,[bx]mov[bx],al;交换mov[bx-1],ahNext:loopGooncm
3、pChange,0jneSortjmp$codeendsendstart五、实验步骤(1)进入Wave6000,输入程序并检查,保存程序。(2)“编译”程序。(3)在指令“jmp$”处设断点。(4)“全速执行”程序。(5)在“数据窗口(MEMOREY)”查看0400H开始的10个单元的内容,记录并分析实验结果。结果:00010202030505060809实验结果分析:实验中的jne和jng都是条件跳转语句(<=),通过循环依次比较,Change是前两个数的交换标志六、总结刚开始运行程序,不理解代码中为什么要加置交换标志Change。之后,我把Change
4、的语句去掉后,重新编译执行,发现结果也是正确的,但是程序不会停止跳出。然后我单步调试,程序一直循环。仔细想想,才理解了Change语句的真正含义:因为jneSort是条件跳转语句,所以在这之前必须要有条件(cmpChange,0),当没有前面的数比后面的数大时,Chang为0,cmpChange,0成立跳出程序结束
此文档下载收益归作者所有