用汇编语言编写的排序程序_第1页
用汇编语言编写的排序程序_第2页
用汇编语言编写的排序程序_第3页
用汇编语言编写的排序程序_第4页
用汇编语言编写的排序程序_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、两两比较次数(成为内循环次数达到为止)。 此时,本次外循环结束,最大的数冒到本次外循环的顶部。第一次外循环,第一次外循环,两两比较的次数为n-1次,最大数据冒到X1的位置;第二次外循环,两两比较次数为n-2次,剩余最大数据冒到X2位置;以此类推,第n-1次外循环,两两比较次数为1次,剩余最大数据项冒到Xn-1的位置。若再一次外循环结束后,经判断本次外循环一次位置交换也未发生过或仅在底部发生过一次交换,则本次外循环结束,数的顺序已排妥,余下的外循环不用进行了。开始设大循环次数DX设小循环变量CX设交换标志BX=DX置变址值取 ejej<=ej-1交换交换标志<=CX修改变址值CX=C

3、X-1CX=0BX=DX?结束DX=DX-1 流程图如上所示。根据流程图编写程序:如下:;程序模板SSEG SEGMENT PARA STACK 'stack'dw 100h dup(0) ;初始化堆栈大小为100SSEG ENDSDSEG SEGMENTDATA DW 150,12,54,89,73,152,45,68,98,65COUNT EQU $-DATABUFO DB 6 DUP (?),'$'DSEG ENDSESEG SEGMENT;附加段:在此处添加程序所需的数据ESEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DS

4、EG, es:ESEG, ss:SSEGDISP PROC ;显示DI所指ASCII字符串的子程序 PUSH DX PUSH AX MOV DX,DI MOV AH,09H INT 21H MOV DL,',' MOV AH,2 INT 21H POP AX POP DXRETDISP ENDPDATCH PROC FAR ;转换数值成为ASCII串的子程序 PUSH DX ;入口参数在AX中,要转换的数在DI中 PUSH CX ;出口参数在DI中,是结果缓冲区指针 PUSH BX MOV CX,10 MOV BX,AXDLOP1:DEC DI XOR DX,DX DIV CX

5、 OR DL,30H MOV DI, DL CMP AX,0 JNZ DLOP1 POP BX POP CX POP DX RETDATCH ENDP MAIN PROC FAR ;主程序入口mov ax, dsegmov ds, axmov ax,esegmov es, axSTART:XOR AX,AX MOV DX,AX ;主程序 MOV CX,AX MOV DX,COUNT/2 ;DX,被排序数据个数LOP1: DEC DX ;DX,大循环变量(大循环次数) MOV CX,DX ;CX,小循环变量(两两比较次数) MOV BX,DX ;设置交换标志 LEA SI,BUFO SUB SI,2LOP2: MOV AX,SI CMP AX,SI-2 JBE PASS XCHG SI-2,AX MOV SI,AX MOV BX,CX PASS: SUB SI,2 LOOP LOP2 CMP BX,DX JE DLAST ;数的顺序已排妥,转DLAST JMP LOP1DLAST:MOV CX,COUNT/2 ;显示的数据个数 LEA SI,DATA ;数据的缓存区首地址LOP3: MOV AX,SI MOV DI,OFFSET BUFO ADD DI,LENGTH BUFO CALL DATCH CALL DISP ADD SI,2 LOOP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论