资源描述:
《昆明理工大学 汇编 实验二 循环程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、昆明理工大学信息工程与自动化学院学生实验报告(2011—2012学年第1学期)课程名称:汇编与微机接口开课实验室:信自楼机房4452011年11月5日年级、专业、班计科093学号200910405310姓名孙浩川成绩实验项目名称循环程序设计指导教师袁梅宇教师评语该同学是否了解实验原理:A.了解□B.基本了解□C.不了解□该同学的实验能力:A.强□B.中等□C.差□该同学的实验是否达到要求:A.达到□B.基本达到□C.未达到□实验报告是否规范:A.规范□B.基本规范□C.不规范□实验过程是否详细记录:A.详细□B
2、.一般□C.没有□教师签名:年月日一、上机目的及内容1.掌握循环程序的设计方法;2.输入并汇编起泡排序程序;3.观察并记录运行结果。二、实验原理及基本技术路线图(方框原理图或程序流程图)1.冒泡排序算法描述排序的方法很多,本例使用起泡排序法实现。其算法是:从第一个数开始依次对相邻两个数进行比较,如次序正确则不做任何操作,否则两数互换位置。在进行了第一遍的(CT-1)次比较后,最小的数已放到了最后。因为已有一个数放到了正确位置,所以第二遍只需比较(CT-1)个数,即只需要比较(CT-2)次……共循环(CT-1)遍
3、,全部数据即排好序。-7-1.冒泡排序流程图开始初始化外循环次数—>DI置内循环次数—>CX置地址指针Ai<=Ai+1?Ai<——>Ai+1修改地址指针指向下一个元素修改内循环次数CX—1—>CXDI=0?修改外循环次数DI—1—>DICX=0?结束YNYNNY-7-三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及masm5.0四、实验方法、步骤(或:程序代码或操作过程)STACKSGSEGMENTSTACK'S'DW64DUP('ST')STACKSGENDSDATASEGMENTARYDW5
4、,7,1,4,3,6,9,8,2;数组,流程图中为ACTEQU($-ARY)/2;元素个数DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSGMAINPROCFARMOVAX,DATAMOVDS,AXMOVDI,CT-1;初始化外循环次数LOP1:MOVCX,DI;置内循环次数MOVBX,0;置地址指针LOP2:MOVAX,ARY[BX]CMPAX,ARY[BX+2];两数比较JGECONT;次序正确转;次序不正确互换位置XCHGAX,ARY[BX+2]MOVA
5、RY[BX],AXCONT:ADDBX,2;修改地址指针LOOPLOP2;内循环控制DECDI;修改外循环次数JNZLOP1;外循环控制MOVAX,4C00HINT21HMAINENDPCODEENDSENDMAIN-7-五、实验过程原始记录(测试数据、图表、计算等)1.-u执行反汇编2.用-t执行至movds,ax3.外循环次数DI为8次4.设置内循环计数器cx-7-5.内循环,5<7,执行XCHGAX,ARY[BX+2]交换次序6.内循环回lop2处7.第一次内循环结束,排列结果:7543968218.判断
6、外循环条件,跳回lop1-7-9.第二次外循环,第一次内循环10.第二次内循环结束,排序结果:75469832111.最终排序结果:987654321-7-六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)通过本次上机实验,我基本掌握了循环程序的设计方法,循环程序可以有两种结构形式:一种是DO_WHILE结构形式,另一种是DO_UNIT结构形式。本程序是运用冒泡排序的算法思想进行降序排列的。在运用U命令、T命令、D命令等的操作来分析过程时,使汇编
7、过程中冒泡排序和循环程序的算法思想更加一清二楚,尤其是外循环和内循环的次数变化。我相信通过多次上机练习,反复分析讨论汇编过程的命令操作,一定能提高我们汇编一样的编程能力。注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。-7-