汇编语言——快速排序

为了课设写得代码,在这作为记录,原理就不多叙述,代码供参考。

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
运行结果

汇编语言——快速排序相关推荐

  1. 简明x86汇编语言教程

    我不想夸大或者贬低汇编语言.但我想说,汇编语言改变了20世纪的历史.与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘.坐在显示器面前,甚至使用鼠标.语音识别.我 ...

  2. 简明x86汇编语言教程_转载

    第○章 写在前面 我不想夸大或者贬低汇编语言.但我想说,汇编语言改变了20世纪的历史.与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘.坐在显示器面前,甚至使用 ...

  3. 计算机组成原理与汇编语言实验与课设源码分享

    0.环境 DOSBox0.74 + 8086 一.计算机组成原理和汇编程序设计实验 1.   编写一个累计加法,从 1 加到 5,将结果保存至 AX 中. 2. 编写一个累计减法,被减数是 10011 ...

  4. Golang TDD实践报告:快速排序Quick Sort

    Golang TDD实践报告:快速排序Quick Sort [阅读时间:约5分钟] 0.项目需求 1.编写符合项目输入输出的一个测试 2.尝试运行测试 3.先使用最少的代码来让失败的测试先跑起来 4. ...

  5. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  6. 汇编语言关于8086CPU多种寻址方式总结

    8086CPU对内存的寻址方式 参考王爽老师的<汇编语言>第四版,P164

  7. 汇编语言中将数据、代码、栈放入不同的段

    数据.代码.栈放入不同的段 在学习汇编语言,将数据.代码.栈放入不同的段.参考王爽老师的<汇编语言>第四版,对P133的汇编代码,进行了个人理解标注.仅供参考,存在错误之处,请大家斧正. ...

  8. 8086汇编语言精华笔记总结~

    目录 第一章 汇编语言的基础知识 1.计算机系统概述 硬件(Handware) 软件(Software) 2.汇编语言介绍 3.数据表示 1. BCD码 2. ASCII码 3. 真值和机器数 4. ...

  9. 汇编语言程序设计 实验九

    实验内容 实验一: 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 ; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segmentd ...

最新文章

  1. 5年Python功力,总结了10个开发技巧
  2. 正则数字和小数点_Python中的正则表达式【不断补充~】
  3. 怎样才算世界一流大学
  4. Sqlserver 如何获取每组中的第一条记录
  5. 成功解决Cannot find declaration to go to
  6. 实现php数组编码的转换的类
  7. Spark RDD使用详解2--RDD创建方式
  8. D3Vueecharts个人乱记
  9. 牛客网【每日一题】4月24日 子序列
  10. python计算汽车的平均油耗_用python对汽车油耗进行数据分析
  11. 基于微信小程序做了个交友小程序
  12. Android 开机底层优化
  13. 游戏关卡设计理论普及
  14. Android自定义View之滑杆内部带数字的SeekBar
  15. 0-VMware Horizon 2203 虚拟桌面-目录大纲
  16. ubuntu20.04安装ROS及常见问题
  17. 浙大版C语言PTA练习答案
  18. 不积小流,无以成江海。——ObjectMapper的作用
  19. 我的笔记--ECMAScript 新特性
  20. matplotlib plot python rgb2gry 显示灰度图像

热门文章

  1. android zip解压进度_android zip4j之--解压zip文件并实时显示解压进度
  2. 一个android 文本比对App的实现(一)
  3. 语义增强的大规模多元图简化可视分析方法
  4. 【PIC单片机】2.编译器下载
  5. tensorflow函数-tf.assign()
  6. ubuntu下使用反编译apk,工具dex2jar和jd-gui
  7. Python计算每个班级的前三名
  8. USB 1~3.0 基礎知識
  9. C++游戏编程(1)——先做一个窗口
  10. java 父类转换成子类的方法