汇编语言——快速排序
汇编语言——快速排序
为了课设写得代码,在这作为记录,原理就不多叙述,代码供参考。
include vcio.inc
include io32.inc
.data
array dword 61,33,48,82,72,11,25,48
flag dword ?
i dword ?
j dword ?
s dword 0
t dword ?
partI dword ?
msg4 byte " , ",0
res byte "排序结果如下 ",13,10,0.code
main procmov eax,lengthof arraydec eaxpush spush eaxcall QuickSort ;QuickSort(0,length-1)mov eax,offset rescall dispmsgcall showArrayexit 1
main endpPartition proc ;Partition(i,j)mov eax,imov esi,jmov ebx,array[eax * (type array)]mov flag,ebx ;flag=arr[i]mov ebx,0.while(eax<esi) ;while(i<j)mov ebx,flag.while(eax<esi && array[esi * (type array)]>=ebx) ;while(i<j && arr[j]>=flag)dec j ;j--dec esi.endw.if(eax<esi) ;if(i<j)mov ecx,array[esi * (type array)] ;mov array[eax * (type array)],ecx ;arr[i]=arr[j]inc i ;i++inc eax.endifmov ebx,flag.while(eax<esi && array[eax * (type array)]<=ebx) ;while(i<j && arr[i]<=flag)inc i ;i++inc eax.endw.if(eax<esi) ;if(i<j)mov ecx,array[eax * (type array)] mov array[esi * (type array)],ecx ;arr[j]=arr[i]dec j ;j--dec esi.endif.endwmov ebx,flagmov array[eax * (type array)],ebxmov partI,eax ;partI中存放结果call showArray
ret
Partition endpQuickSort proc ;QuickSort(s,t)push ebpmov ebp,espmov ecx,[ebp+12]mov s,ecxmov edx,[ebp+8]mov t,edx.if(ecx<edx) ;if(s<t)mov i,ecxmov j,edx call Partition ;Partition(s,t)mov ebx,partI ;获取结果push smov edi,partI.if(edi>0)dec partIpush partIinc partI.elsepush partI.endifcall QuickSort ;QuickSort(s,partI-1)inc partIpush partIpush [ebp+8]call QuickSort ;QuickSort(partI+1,t).endifpop ebpret 8
QuickSort endpshowArray procmov esi,0.while(esi<lengthof array)mov eax,array[esi*(type array)]inc esicall dispsidmov eax,offset msg4call dispmsg.endwcall dispcrlfret
showArray endpend main
运行结果
汇编语言——快速排序相关推荐
- 简明x86汇编语言教程
我不想夸大或者贬低汇编语言.但我想说,汇编语言改变了20世纪的历史.与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘.坐在显示器面前,甚至使用鼠标.语音识别.我 ...
- 简明x86汇编语言教程_转载
第○章 写在前面 我不想夸大或者贬低汇编语言.但我想说,汇编语言改变了20世纪的历史.与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘.坐在显示器面前,甚至使用 ...
- 计算机组成原理与汇编语言实验与课设源码分享
0.环境 DOSBox0.74 + 8086 一.计算机组成原理和汇编程序设计实验 1. 编写一个累计加法,从 1 加到 5,将结果保存至 AX 中. 2. 编写一个累计减法,被减数是 10011 ...
- Golang TDD实践报告:快速排序Quick Sort
Golang TDD实践报告:快速排序Quick Sort [阅读时间:约5分钟] 0.项目需求 1.编写符合项目输入输出的一个测试 2.尝试运行测试 3.先使用最少的代码来让失败的测试先跑起来 4. ...
- 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/
大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...
- 汇编语言关于8086CPU多种寻址方式总结
8086CPU对内存的寻址方式 参考王爽老师的<汇编语言>第四版,P164
- 汇编语言中将数据、代码、栈放入不同的段
数据.代码.栈放入不同的段 在学习汇编语言,将数据.代码.栈放入不同的段.参考王爽老师的<汇编语言>第四版,对P133的汇编代码,进行了个人理解标注.仅供参考,存在错误之处,请大家斧正. ...
- 8086汇编语言精华笔记总结~
目录 第一章 汇编语言的基础知识 1.计算机系统概述 硬件(Handware) 软件(Software) 2.汇编语言介绍 3.数据表示 1. BCD码 2. ASCII码 3. 真值和机器数 4. ...
- 汇编语言程序设计 实验九
实验内容 实验一: 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 ; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segmentd ...
最新文章
- 5年Python功力,总结了10个开发技巧
- 正则数字和小数点_Python中的正则表达式【不断补充~】
- 怎样才算世界一流大学
- Sqlserver 如何获取每组中的第一条记录
- 成功解决Cannot find declaration to go to
- 实现php数组编码的转换的类
- Spark RDD使用详解2--RDD创建方式
- D3Vueecharts个人乱记
- 牛客网【每日一题】4月24日 子序列
- python计算汽车的平均油耗_用python对汽车油耗进行数据分析
- 基于微信小程序做了个交友小程序
- Android 开机底层优化
- 游戏关卡设计理论普及
- Android自定义View之滑杆内部带数字的SeekBar
- 0-VMware Horizon 2203 虚拟桌面-目录大纲
- ubuntu20.04安装ROS及常见问题
- 浙大版C语言PTA练习答案
- 不积小流,无以成江海。——ObjectMapper的作用
- 我的笔记--ECMAScript 新特性
- matplotlib plot python rgb2gry 显示灰度图像