怎么使用汇编语言实现冒泡排序

我们先想想C语言里是怎么实现的冒泡排序
#include<stdio.h>
int main()
{int arr[10];int brr[10];int a,c,d,s,i;for(a=0; a<10; a++)scanf("%d",&arr[a]);for (c=0; c<9; c++){for(d=0; d<9-c; d++){if(arr[d]>arr[d+1]){s=arr[d];arr[d]=arr[d+1];arr[d+1]=s;}}}for(i=0; i<10; i++)printf("%d\n",arr[i]);return 0;
}
我么可以仿照C语言来实现我们的排序
首先cx值为外层循环变量,进入第二层循环时,cx的值入栈,保留其值。
再将cx的值置为内层循环次数的值。完成双层循环。
具体实现如下
Assume cs:code,ds:data,ss:stackdata segmentdw 123h,5h,9h,11h,33h,6h,9h,76h;数据段初始化dw 100h,3h,6 dup(0);[14]内存存放外层已经循坏了多少次data endsstack segment;栈段初始化dw 0,0,0,0,0,0,0,0stack endscode segment;代码段start:mov ax,datamov ds,axmov ax,stackmov ss,axmov sp,10hmov cx,9mov bx,0mov dx,0L:  ;外层循坏,固定为9次push cx;外层循坏cx值入栈mov ax,9sub ax,word ptr ds:[14h];内层循坏次数9-ds:[14]次mov cx,ax;将循坏次数mov到cx中mov ax,0mov bx,0s:;内存循坏开始,每次将第da:[14]+1大的数放到最后面mov ax,ds:[bx];取出第一个数值mov dx,ds:[bx+2];取出第二个数值cmp ax,dx;进行比较jna next;如果ax<=dx就转到next,否则就继续push ax;实现两个数的交换push dxpop  ds:[bx]pop  ds:[bx+2]next:nopadd bx,2;将bx往后移一个字loop spop cx;外层循坏cx出栈mov ax,0;mov ax,word ptr ds:[14h];这里三行实现ds:[14]计数功能计算外层循坏次数inc axmov word ptr ds:[14h],axloop Lmov ax,4c00hint 21hcode endsend start

这样就大功告成了。

如何使用汇编语言实现冒泡排序?相关推荐

  1. 汇编语言:冒泡排序算法将10个数按从小到大顺序排列

    汇编语言:冒泡排序算法 题目描述 自定义一组有首地址为data的10个字的数组,请利用冒泡排序算法来编写程序,使该数组中的数按照从小到大的次序有序化.(注:10个字可以自己定义.) datas seg ...

  2. 汇编:汇编语言实现冒泡排序(loop指令实现)

    1 ;=============================== 2 ;循环程序设计 3 ;loop指令实现 4 ;冒泡排序 5 ;for(int i=0;i<N;i++){ 6 ; for ...

  3. 汇编语言实现冒泡排序

    目录 用汇编实现冒泡排序 硬件环境 软件环境 内容 流程图 汇编源代码 结果图 用汇编实现冒泡排序 硬件环境 Intel®Core™m3-7Y30.4.00GB 软件环境 Win10.ML615.DO ...

  4. 用汇编语言与C语言实验其他排序,微机原理实验报告冒泡排序

    微机原理实验报告冒泡排序 五.运行结果 (1)对300,250,280,240,260五个数进行冒泡排序,运行结果如下: (2)对-1,2,54,-38,43五个数进行冒泡排序,运行结果如下 (1)当 ...

  5. 汇编语言-016(SCASB 、STOSB 、LODSD 、数组中的取值、二维数组操作、冒泡排序和二分查找、CMPSW )

    1: SCASB : (字节)将AL的值与EDI寻址的一个字比较.进行在一个字符串检索特定的字符 .386 .model flat,stdcall.stack 4096 ExitProcess PRO ...

  6. 8086汇编语言实现数组冒泡排序(全注释)

    微机原理上机第二次作业,任务要求如下: 大概的意思是,从键盘输入数组大小和数组里面的数据,首先显示数组数据,然后排个序,排完序之后再显示数组. 没听过课,肝了一整天,翻书+网上查资料终于写完了. 这里 ...

  7. [书]x86汇编语言:从实模式到保护模式 -- 第11章 进入保护模式,初识全局描述符表GDT; 第12章 别名,冒泡排序

    第11章 进入保护模式:初始化全局描述符表,通过GDT进入代码段.数据段.堆栈段 ; FILE: c11_mbr.asm ; DATE: 20191229 ; TITLE: 硬盘主引导扇区代码; 设置 ...

  8. 汇编语言冒泡排序一看就懂

    刚开始学汇编,遇到冒泡排序问题后开始在网上找了很多用汇编写的冒泡排序,但是初看效果并不好,于是自己根据之前学习的和c语言习惯,写了如下汇编程序,让大家更容易理解 代码如下,可以直接运行 // data ...

  9. c51汇编语言冒泡排序,汇编实现冒泡排序的方法示例

    冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. ...

最新文章

  1. Intellij IDEA 2018.2 搭建Spring Boot 应用
  2. C++ 虚函数、多态
  3. leetcode算法题--一周中的第几天
  4. 学会使用svn:externals
  5. 在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法
  6. factorybean与beanfactory
  7. nokia 计算机手机,NOKIA手机与电脑的数据线连接
  8. java伪代码生成器_JAVA单例模式的实现伪代码
  9. rust全息要啥才能做_在 Rust 中不能做什么
  10. 将list集合中按照某个字段排序(从大到小),然后将list中的对象倒序
  11. iphone微信 h5页音乐自动播放
  12. activity 工作流_智能风控决策引擎系统可落地实现方案(二)决策流实现
  13. 【收集】个人认为比较实用的电脑工具软件(附带安装包下载)
  14. Junipor交换机 HAS BOOTED FROM THE BACKUP JUNOS IMAGE
  15. 北京大学深圳研究生院计算机应用技术,北京大学计算机应用技术考研经验-北大深圳研究生院考研辅导班...
  16. 国产性能最稳定NFC读卡器芯片FSV9520完美替代CV520 SPI接口 可免费提供软硬件DEMO 快速研发产品
  17. IDEA如何集成P3C插件检测代码
  18. flume 从基础到高阶
  19. mc服务器维护成本,服务器不是随便开?运营成本才值几个钱,MC玩家这种误解从何而来...
  20. Linux命令:ifconfig出现command not found 的解决办法

热门文章

  1. 银行股从“宽货币”到“宽信用”的传导 中富金石老师建议“持股过年”
  2. emule-Xtreme(电驴)
  3. 电信linux笔试题,中国电信笔试题
  4. 据说是中国电信的java编程面试题
  5. 互联网广告市场下沉:快手趣头条必有一战
  6. office2019 下载安装在其他盘非系统盘
  7. 几款流行的ipad上的PDF阅读器评测
  8. 单片机C语言实现dc到ac的转换,单相AC-DC转换电路精要.doc
  9. 华为认证思科认证[hcna/hcia/ccna]总结思维导图(在学习的过程中手打的无私分享)后续有笔记总结,np内容后续也会发
  10. 下载的PPT模板有水印怎么去除?