用汇编语言编写的排序程序

上传人:m**** 文档编号:509827805 上传时间:2024-01-23 格式:DOC 页数:7 大小:189.50KB
返回 下载 相关 举报
用汇编语言编写的排序程序_第1页
第1页 / 共7页
用汇编语言编写的排序程序_第2页
第2页 / 共7页
用汇编语言编写的排序程序_第3页
第3页 / 共7页
用汇编语言编写的排序程序_第4页
第4页 / 共7页
用汇编语言编写的排序程序_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《用汇编语言编写的排序程序》由会员分享,可在线阅读,更多相关《用汇编语言编写的排序程序(7页珍藏版)》请在金锄头文库上搜索。

1、用汇编语言编写的排序程序一 实验目的3二 题目.3三 算法分析.3四 流程图及算法5五 源程序附录a、参考文献一 实验目的:1、进一步熟悉汇编语言的代码;2、学会分析算法并构造流程图;3、能够完成简单的子程序设计;4、学会查找程序的算法。二 题目将以地址DATA开始的10个无符号字数据按从大到小的顺序重新排列三 算法分析排序算法采用冒泡法,假定待排序数组中有X1,X2,X3,.X10共十个无符号数据,冒泡排序法的具体做法是:最多有九次外循环。每次外循环均从底部开始进行两两比较,若后者大于前者,两者位置交换,反之不变。然后两两比较向前推移,直到本次外循环应完成的两两比较次数(成为内循环次数达到为

2、止)。此时,本次外循环结束,最大的数冒到本次外循环的顶部。第一次外循环,第一次外循环,两两比较的次数为n-1次,最大数据冒到X1的位置;第二次外循环,两两比较次数为n-2次,剩余最大数据冒到X2位置;以此类推,第n-1次外循环,两两比较次数为1次,剩余最大数据项冒到X的位置。若再一次外循环结束后,经判断本次外循环一次位置交换也未n-1发生过或仅在底部发生过一次交换,则本次外循环结束,数的顺序已排妥,余下的外循环不用进行了。流程图如上所示。根据流程图编写程序:如下:;程序模板SSEGSEGMENTPARASTACKstackdw100hdup(0);初始化堆栈大小为100SSEGENDSDSEG

3、SEGMENTDATADW150,12,54,89,73,152,45,68,98,65COUNTEQU$-DATABUFODB6DUP(?),$DSEGENDSESEGSEGMENT;附加段:在此处添加程序所需的数据ESEGENDSCSEGSEGMENTassumecs:CSEG,ds:DSEG,es:ESEG,ss:SSEGDISPPROC;显示DI所指ASCII字符串的子程序PUSHDXPUSHAXMOVDX,DIMOVAH,09HINT21HMOVDL,MOVAH,2INT21HPOPAXPOPDXRETDISPENDPDATCHPROCFAR;转换数值成为ASCII串的子程序PUSH

4、DX;入口参数在AX中,要转换的数在DI中PUSHCX;出口参数在DI中,是结果缓冲区指针PUSHBXMOVCX,10MOVBX,AXDLOP1:DECDIXORDX,DXDIVCXORDL,30HMOVDI,DLCMPAX,0JNZDLOP1POPBXPOPCXPOPDXRETDATCHENDPMAINPROCFAR;主程序入口movax,dsegmovds,axmovax,esegmoves,axSTART:XORAX,AXMOVDX,AX;MOVCX,AXMOVDX,COUNT/2LOP1:DECDXMOVCX,DXMOVBX,DXLEASI,BUFOSUBSI,2LOP2:MOVAX,

5、SICMPAX,SI-2JBEPASSXCHGSI-2,AXMOVSI,AXMOVBX,CXPASS:SUBSI,2LOOPLOP2CMPBX,DXJEDLASTJMPLOP1DLAST:MOVCX,COUNT/2LEASI,DATALOP3:MOVAX,SI主程序;DX,被排序数据个数;DX,大循环变量(大循环次数);CX,小循环变量(两两比较次数);设置交换标志;数的顺序已排妥,转DLAST;显示的数据个数;数据的缓存区首地址MOVDI,OFFSETBUFOADDDI,LENGTHBUFOCALLDATCHCALLDISPADDSI,2LOOPLOP3movah,1int21hmovax,4c00h;程序结束,返回到操作系统系统int21hMAINENDPCSEGENDSENDMAIN结果:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号