- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《汇编语言程序设计》实验报告
年级、专业、班级 2010级计科一班 姓名 潘刚莉 实验题目 实验3:汇编程序的循环结构的使用 实验时间 2012.05.14 实验地点 DS1404 实验成绩 实验性质 □验证性 ( 设计性 □综合性 教师评价:
□算法/实验过程正确; □源程序/实验内容提交 □程序结构/实验步骤合理;
□实验结果正确; □语法、语义正确; □报告规范;
其他:
评价教师签名: 一、实验目的
通过一个排序算法,来熟悉和掌握利用汇编语言实现循环处理能力的程序。 二、实验项目内容
1 编写一个整数数组内的元素排序的程序
2 需要排序数组大小为10个DW的整数
3 按照从低到高输出这10个数字
4 要求撰写必要程序模块设计图和主要的流程
实验过程或算法(源程序)
输入并汇编冒泡排序程序
冒泡排序算法描述
排序的方法很多,本例使用起泡排序法实现。 其算法是:从第一个数开始依次对相邻两个数进行比较,如次序正确则不做任何操作,否则两数互换位置。在进行了第一遍的(CT-1)次比较后,最小的数已放到了最后。因为已有一个数放到了正确位置,所以第二遍只需比较(CT-1)个数,即只需要比较(CT-2)次……共循环(CT-1)遍,全部数据即排好序。简而言之:每个循环找一个最小数放到最后,下一循环从剩余数中再找最小数……共循环(CT-1)遍。
冒泡排序流程图
冒泡排序源程序
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
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
初始化外循环次数,程序中有9个数,外循环次数初始值DI=CT-1=8,并查看现在的数据段寄存器内容。
数据段寄存器内容为初始数组内容:5,7,1,4,3,6,9,8,2
置内循环次数CX=DI,CX的初始值为8 。内循环第一次比较5和7的大小。
两个数比较后,按降序排序,次序正确,段寄存器的内容如下图所示,则修改地址指针BX加2,继续内循环中的第二次比较。
内循环第二次比较,是比较1和4,次序不正确,则交换两个数的位置,执行过程如下:
寄存器的内容如下
接着内循环第三次直至第八次后,1放在最后的位置上,8次内循环结束,也就是外循环结束一次,CX=0。此时DI=7。
文档评论(0)