用汇编语言编写的排序程序
更新时间:2023-05-24 12:55:01 阅读量: 实用文档 文档下载
用汇编语言编写的排序程序
一 实验目的………………………………………………3
二 题目…………………………………………………..3
三 算法分析……………………………………………..3
四 流程图及算法…………………………………………5
五 源程序
附录
a、参考文献
一 实验目的:
1、 进一步熟悉汇编语言的代码;
2、 学会分析算法并构造流程图;
3、 能够完成简单的子程序设计;
4、 学会查找程序的算法。
二 题目
将以地址DATA开始的10个无符号字数据按从大到小的顺序重新排列
三 算法分析
排序算法采用冒泡法,假定待排序数组中有X1,X2,X3,…X10共十个无符号数据,冒泡排序法的具体做法是:最多有九次外循环。每次外循环均从底部开始进行两两比较,若后者大于前者,两者位置交换,反之不变。然后两两比较向前推移,直到本次外循环应完成的两两比较次数(成为内循环次数达到为止)。
此时,本次外循环结束,最大的数冒到本次外循环的顶部。第一次外循环,第一次外循环,两两比较的次数为n-1次,最大数据冒到X1的位置;第二次外循环,两两比较次数为n-2次,剩余最大数据冒到X2位置;以此类推,第n-1次外循环,两两比较次数为1次,剩余最大数据项冒到Xn-1的位置。若再一次外循环结束后,经判断本次外循环一次位置交换也未发生过或仅在底部发生过一次交换,则本次外循环结束,数的顺序已排妥,余下的外循环不用进行了。
开始
设大循环次数 DX
设小循环变量 CX
设交换标志 BX=DX
置变址值
取
ej
ej<=ej-1
交换
交换标志<=CX
修改变址值 DX=DX-1 CX=CX-1
CX=0
BX=DX?
结束
流程图如上所示。
根据流程图编写程序:如下:
;程序模板
SSEG SEGMENT PARA STACK 'stack'
dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS
DSEG SEGMENT
DATA DW 150,12,54,89,73,152,45,68,98,65
COUNT EQU $-DATA
BUFO DB 6 DUP (?),'$'
DSEG ENDS
ESEG SEGMENT
;附加段:在此处添加程序所需的数据
ESEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG
DISP 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 DX
RET
DISP ENDP
DATCH PROC FAR ;转换数值成为ASCII串的子程序
PUSH DX ;入口参数在AX中,要转换的数在DI中 PUSH CX ;出口参数在DI中,是结果缓冲区指针 PUSH BX
MOV CX,10
MOV BX,AX
DLOP1:DEC DI
XOR DX,DX
DIV CX
OR DL,30H
MOV [DI], DL
CMP AX,0
JNZ DLOP1
POP BX
POP CX
POP DX
RET
DATCH ENDP
MAIN PROC FAR ;主程序入口
mov ax, dseg
mov ds, ax
mov ax,eseg
mov es, ax
START: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,2
LOP2: 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 LOP1
DLAST: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 LOP3
mov ah,1
int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统 int 21h
MAIN ENDP
CSEG ENDS
END MAIN
结果:
正在阅读:
用汇编语言编写的排序程序05-24
最全、最完整工程施工组织设计方案11-21
01-个人专业能力、工作业绩、获奖证书及证明材料公示模板-工程系列南宁市中级评委会01-29
扑火科目训练教案10-06
金属材料及零部件的失效分析04-08
薄层色谱TLC(点板)的基本原理04-19
【健康栏目】家有病人勿入进补误区07-17
我为祖国点赞作文08-01
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 汇编语言
- 编写
- 排序
- 程序
- 电子商务大赛练习题6
- 福建省福清西山学校高中生物 第三章《DNA是主要的遗传物质》导学案 (一课时) 新人教版必修2
- 第10讲_会计凭证、会计账簿与账务处理程序(3)
- 国学小名士观后感550字
- 备用电源自动投入装置及接线方式
- 酒店销售部经理个人述职报告(1)
- 湖北省农业发展十二五规划
- 2016管帐专业结业生自我鉴定
- 塔吊安装、拆除专项施工方案之令狐文艳创作
- “四查一改”针对36条检查情况
- _颠倒歌_教学设计
- 抗旱规划实施方案编制大纲解读
- bfe_0311_图纸更改使用审核管理制度
- 2013年6月苏教版数学四年级下册期末试卷
- 一轮复习 染色体变异 学案
- 高中化学沉淀物和单质颜色
- 高中语文必修三第一单元测试卷
- 中国降低关税的利弊分析
- 酒店销售培训经典资料
- 曲墙式衬砌计算 - 副本