有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出。

选择排序:

data segment
message db 'This is a program of Selection sort',0dh,0ah,'$'
NUM dw ,,,,, ;0ch,4eh,37h,4h,7dh,60h
count db $-NUM
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset message
mov ah,
int 21h
xor cx,cx
mov cl,count
shr cl,
dec cx ;比较n-1次
mov bx,
loop1:
push cx ;cx入栈,避免内循环改变cx的值
mov si,bx ;si为内层循环的初始值,相当于下标
mov ax,NUM[si] ;ax为关键字
loop2:
cmp ax,NUM[si+]
jg exchange ;ax>NUM[si+1]则NUM[si+1]设为当前最小值,交换
jmp done
exchange:
xchg ax,NUM[si+] ;暂时存在ax中
done:
add si,
loop loop2
mov NUM[bx],ax ;得到一个最小值, 前面的已经排好序
add bx,
pop cx
loop loop1
xor cx,cx
xor si,si
print: ;输出
mov ax,NUM[si]
loopb:
xor dx,dx
inc cl
mov bx,
div bx ;ax商,dx余
push dx ;余数入栈
cmp ax,
jne loopb
loopc:
pop dx
or dl,00110000b
mov ah,
int 21h
loop loopc
add si,
mov dl,20h
mov ah,2h
int 21h
mov bx,word ptr count
cmp si,bx
jb print
exit:
mov ah,4ch
int 21h
code ends
end start

assembly x86(nasm)选择排序的更多相关文章

  1. assembly x86(nasm)画三角形等图形的实现(升级版)

    https://www.cnblogs.com/lanclot-/p/10962702.html接上一篇 本来就有放弃的想法,可是有不愿退而求次, 然后大神室友写了一个集海伦公式计算三角形面积, 三点 ...

  2. assembly x86(nasm)修改后的日常

    data segment ENG db 'SUNdayS Coming I Wanna Drive My Car,SUN,SUN$' ;9,3 sun1 db 'SUN' swcount db 0ah ...

  3. assembly x86(nasm)子程序1

    T: 将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来.要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示. 思路: Main主调程 ...

  4. assembly x86(nasm)的日常

    cs的日常打卡. data segment ENG db 'SUNdayS Coming I Wanna Drive My Car,SUN,SUN$' ;43,35 sun1 db 'SUN' swc ...

  5. assembly x86(nasm)串比较

    预留字符串口令,输入口令串与预留密码串比较.若匹配则显示“MATCH!CONGRATULATION”,否则显示“NOMATCH!”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输 ...

  6. assembly x86(nasm)画三角形等图形的实现

    参考了一位大佬的博客 https://blog.csdn.net/qq_40298054/article/details/84496944传送门 https://blog.csdn.net/qq_40 ...

  7. 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...

  8. Html5 简单选择排序演示

    简单选择排序,是选择排序算法的一种.基本思想:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止.由于在每次循环中,会对数值相等的元素改变位置,所以属于非稳定 ...

  9. 排序算法总结------选择排序 ---javascript描述

    每当面试时避不可少谈论的话题是排序算法,上次面试时被问到写排序算法,然后脑袋一懵不会写,狠狠的被面试官鄙视了一番,问我是不是第一次参加面试,怎么可以连排序算法都不会呢?不过当时确实是第一次去面试,以此 ...

随机推荐

  1. 九度OJ 1099:后缀子串排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3439 解决:1491 题目描述: 对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain  rain  ain  i ...

  2. Jsp中操作页面显示

    通常我们想改变网页中的显示可以用下面的方式. <script type="text/javascript">function show(){     document. ...

  3. 微信小程序开发:学习笔记[9]——本地数据缓存

    微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...

  4. 原来 Set 集合也可以排序

    Java 集合类主要由两个接口派生而出: Collection 和 Map.在 Collection 集合中,我们经常用到的是 List 集合和 Map 集合,而 Set 集合出场的机会就相对比较的少 ...

  5. [CPP] Coding Style

    C++ Coding Style C++很多强大的语言特性导致它的复杂,其复杂性会使得代码更容易出现bug.难于阅读和维护. 由于,本人有一点点代码洁癖,所以依照Google的C++编程规范<G ...

  6. 关于<context:annotation-config/>配置

    对于spring项目的一些配置,一直感到有些混乱,今天看到一前辈总结的特别好,把自己的理解贴在这里,有不当的地方,后续继续学习: 当我们使用@Autowired.@Required等这些注解时,就要在 ...

  7. CodeForces - 450B Jzzhu and Sequences —— 斐波那契数、矩阵快速幂

    题目链接:https://vjudge.net/problem/CodeForces-450B B. Jzzhu and Sequences time limit per test 1 second ...

  8. 作业:xml练习2-写.xml的外部约束文件(dtd文件)

    写外部DTD: 步骤: 1.在srd目录下新建DTD文件,并命名为:scores.dtd 2.在练习1的基础上,剪切练习1的DTD内部声明.粘贴到一个新建的DTD文件中.剪切之后的地方换上:包含外部D ...

  9. BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告

    题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?pid=1002&cid=530 (格式有一点点问题,直接粘 ...

  10. 存储过程系列二:适用函数wm_concat(column)函数实现字段合并

    1.学习wm_concat函数 oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并 shoppi ...