汇编:汇编语言实现冒泡排序(loop指令实现)
;===============================
;循环程序设计
;loop指令实现
;冒泡排序
;for(int i=0;i<N;i++){
; for(int h=0;j<N-1-i>;j++){
; if(array[j]>array[j+1]){
; exchange(array[j],array[j+1]);
; }
; }
;}
DATAS SEGMENT
buffer db ,,,,,,,,, ;待排序的10个数
DATAS ends
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
mov AX,DATAS ;待排序的内容的段地址
mov DS,AX mov bx,offset buffer ;待排序的内容的偏移地址
mov si, ;外层循环起始下标0
xor cx,cx
mov cl, ;设置外层循环次数 flag1:
mov di, ;内层循环起始地址下标0
push cx ;cx次数压栈
flag2:
mov al,[bx+di]
cmp al,[bx+di+]
ja next1 ;大于
xchg al,[bx+di+]
mov [bx+di],al ;交换
next1:
inc di
loop flag2
pop cx ;内层循环完毕时 出栈
next2:
inc si
loop flag1 exit:
mov ah,4ch
int 21H
CODES ends
end START
;=====================
汇编:汇编语言实现冒泡排序(loop指令实现)的更多相关文章
- 汇编语言-[BX]和loop指令
汇编语言-[BX]和loop指令 [BX]指令介绍 mov ax,[bx] 功能: bx为偏移地址,段地址默认为ds.因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + ...
- 80806汇编(5)——[BX]和Loop指令
80806汇编(5)--[BX]和Loop指令 已经好久没写点东西了,国庆节就一直想弄个个人网站,这段时间一直在弄那个,虽然有现成的框架(Hexo),但是总想弄出自己的效果来,但是最后还是有些差强人意 ...
- 汇编-5.0-[BX]和loop指令
1.要完整的描述一个内存单元,需要两种信息:1.内存单元的地址:2.内存单元的长度(类型). 2."()"表示一个寄存器或一个内存单元中的内容.如:(ax)表示ax中的内容. &q ...
- 汇编语言-[bx]和loop指令和多个段
5.1 [BX]和内存单元的描述 要完成描述一个内存单元,需要两种信息: 内存单元的地址: 可以用 [0] 表示一个内存单元, 0 表示单元的偏移地址,段地址默认在 ds 中: 同样也可以用 [bx] ...
- 小甲鱼零基础汇编语言学习笔记第五章之[BX]和loop指令
这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀. 1.[BX]的概念 [BX]和[0]类似 ...
- 王爽汇编第五章,[bx]和loop指令
目录 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 例子: 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 [bx]之前我们介绍寄存器的时候,已经很详细的说明过了,b ...
- [汇编学习笔记][第五章[BX]和loop指令]
第五章[BX]和loop指令 前言 定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如: (ax)表示ax中的内容,(al)表示al的内容. 约定符号ideta表示常量. 5.1 [BX ...
- 第五章 [BX]和loop指令
5.1 [bx] [bx]是什么 和 [0] 有些类似,[0] 表示内存单元,它的偏移地址是 0. 例如: mov ax, [0] 内存以字节为单位:ax以字(16bit = 2Byte)为单位:al ...
- 汇编语言---call和ret指令
汇编语言--call和ret指令 call和ret指令 call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP. 它们经常被共同用来实现子程序的设计. ret和retf ret指令用栈 ...
随机推荐
- 01常用<meta>总结
meta标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的,它可以用于浏览器(显示内容/重新加载页面),搜索引擎(关键字),或者其他web服务. 一.页面设置 <!- ...
- 什么时候修改class
点击按钮class发生改变 <html> <head> <meta http-equiv="Content-Type" content="t ...
- Linux在Tomcat下部署JavaWeb项目
一.Linux快速部署War包操作 1.先关闭Tomcat /home/java/tomcat8/bin/shutdown.sh 注意:进入tomcat bin目录下操作 2.进入War包存放目录(可 ...
- 机器学习(一)——K-近邻(KNN)算法
最近在看<机器学习实战>这本书,因为自己本身很想深入的了解机器学习算法,加之想学python,就在朋友的推荐之下选择了这本书进行学习. 一 . K-近邻算法(KNN)概述 最简单最初级的 ...
- mongodb 3.4 学习 (三)复制集
复制集(replica set) 复制集是一组mongodb的进程维护同样的数据集,提供冗余与高可用性.最小的复制集由3台服务器(或者3个实例)组成,最多1个primary和2个secondary实例 ...
- SQL Server ->> DISABLE索引后插入更新数据再REBUILD索引 和 保留索引直接插入更新数据的性能差异
之前对于“DISABLE索引后插入更新数据再REBUILD索引 和 保留索引直接插入更新数据的性能差异”这两种方法一直认为其实应该差不多,因为无论如何索引最后都需要被维护,只不过是个时间顺序先后的问题 ...
- 再学UML-UML用例建模解析(三)
2. 编写用例文档 绘制用例图只是完成了用例建模最基本也是最简单的一步,用例建模的核心在于编写用例文档,用例文档又称为用例规约或用例描述.顾名思义,用例文档是用于描述用例的文档,每一个用例对应于一个用 ...
- GitLab 数据备份和恢复
GitLab 备份 /opt/gitlab/bin/gitlab-rake gitlab:backup:create //只是备份各项目的数据 完成后会在默认路径下多出来备份的tar包! /var/o ...
- Locust性能测试3 no-web运行
Locust也支持no-web的方式运行,直接通过控制台设置并发用户数.每秒启动用户数.持续压测时间. locust -f 脚本路径 -c 用户数 -r 每秒启动用户数 --run-time 持续压测 ...
- 从并发和索引说说innodb和myisam的区别
一.引言 这个问题看似是个很俗气的问题,但是在面试中也是个经常被问到的问题.我想很多人都能说出几条,比如事物,外键,等等.但是我想这样想起一点说一句这么回答的话,知识其实都是分散的,这样就显得不是很高 ...