好文档 - 专业文书写作范文服务资料分享网站

计科班潘刚莉

天下 分享 时间: 加入收藏 我要投稿 点赞

《汇编语言程序设计》实验报告

年级、专业、班级 实验题目 实验时间 2012.05.14 实验成绩 2010级计科一班 姓名 潘刚莉 实验3:汇编程序的循环结构的使用 实验地点 实验性质 DS1404 □验证性 ? 设计性 □综合性 教师评价: □算法/实验过程正确; □源程序/实验内容提交 □程序结构/实验步骤合理; □实验结果正确; □语法、语义正确; □报告规范; 其他: 评价教师签名: 一、实验目的 通过一个排序算法,来熟悉和掌握利用汇编语言实现循环处理能力的程序。 二、实验项目内容 1 编写一个整数数组内的元素排序的程序 2 需要排序数组大小为10个DW的整数 3 按照从低到高输出这10个数字 4 要求撰写必要程序模块设计图和主要的流程 三、实验过程或算法(源程序) 一. 输入并汇编冒泡排序程序 1. 冒泡排序算法描述 排序的方法很多,本例使用起泡排序法实现。 其算法是:从第一个数开始依次对相邻两个数进行比较,如次序正确则不做任何操作,否则两数互换位置。在进行了第一遍的(CT-1)次比较后,最小的数已放到了最后。因为已有一个数放到了正确位置,所以第二遍只需比较(CT-1)个数,即只需要比较(CT-2)次……共循环(CT-1)遍,全部数据即排好序。 简而言之:每个循环找一个最小数放到最后,下一循环从剩余数中再找最小数……共循环(CT-1)遍。 2. 冒泡排序流程图 1 / 9

开始 初始化外循环次数—>DI 置内循环次数—>CX 置地址指针 Ai<=Ai+1? N Y Ai<——>Ai+1 修改地址指针指向下一个元素 修改内循环次数CX—1—>CX N CX=0? Y 修改外循环次数DI—1—>DI Y N DI=0? 结束 3. 冒泡排序源程序 STACKSG SEGMENT STACK 'S' DW 64 DUP('ST') STACKSG ENDS DATA SEGMENT ARY DW 5,7,1,4,3,6,9,8,2 ;数组,流程图中为A CT EQU ($-ARY)/2 ;元素个数 DATA ENDS CODE SEGMENT 2 / 9

ASSUME CS:CODE,DS:DATA,SS:STACKSG MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV DI,CT-1 ;初始化外循环次数 LOP1: MOV CX,DI ;置内循环次数 MOV BX,0 ;置地址指针 LOP2: MOV AX,ARY[BX] CMP AX,ARY[BX+2] ;两数比较 JGE CONT ;次序正确转 ;次序不正确互换位置 XCHG AX,ARY[BX+2] MOV ARY[BX],AX CONT: ADD BX,2 ;修改地址指针 LOOP LOP2 ;内循环控制 DEC DI ;修改外循环次数 JNZ LOP1 ;外循环控制 MOV AX,4C00H INT 21H MAIN ENDP CODE ENDS END MAIN 四、实验结果及分析和(或)源程序调试过程 (一)实验结果: 1. 使用U命令查看MAOPAO.EXE可执行文件的反汇编代码 3 / 9

计科班潘刚莉

《汇编语言程序设计》实验报告年级、专业、班级实验题目实验时间2012.05.14实验成绩2010级计科一班姓名潘刚莉实验3:汇编程序的循环结构的使用实验地点实验性质DS1404□验证性?设计性□综合性教师评价:□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□
推荐度:
点击下载文档文档为doc格式
3o9f41tdw9371qz5d0ci05ej21u0rq00k4i
领取福利

微信扫码领取福利

微信扫码分享