有一个首地址为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

最新文章

  1. IIS7 IIS8 中多个版本php共存的方法
  2. ExtJS学习之路第八步:Window组件
  3. iptables的详细介绍及配置方法*
  4. QTP获取系统时间并自定义格式
  5. 【原】使用ajax的get异常获取数据的时候,IE浏览器总是有缓存
  6. 使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
  7. Remove Duplicate Letters
  8. T - stl 的mapⅡ
  9. ios 第三方qq授权登陆,第一次登陆后,再次登陆,失效
  10. spring-android的使用【转】
  11. Tick and Tick------HDOJ杭州电(无法解释,直接看代码)
  12. TASKCTL产品功能清单-转载
  13. Python笔记(十一):多线程
  14. APIO 2014 回文串(Manacher+后缀自动机+倍增)
  15. Confluence 6 编辑和删除用户宏
  16. MongoDB调优-查询优化-MongoDB Profiler
  17. jenkins执行shell提示命令不存在
  18. 后台开发 - DPDK引发的图谱
  19. mongodb如何设置主键自增
  20. pthread_cond_wait和pthread_cond_signal以及互斥变量的使用情况

热门文章

  1. 理解c/c++指针和引用
  2. 不懂不能装懂--邮箱后缀“inc”的含义
  3. MYSQL进阶学习笔记十八:MySQL备份和还原!(视频序号:进阶_37)
  4. 什么是HTTP协议?
  5. CodeForces960F:Pathwalks (主席树+DP)
  6. C/C++的const区别
  7. windows下的套接字IO模型
  8. Json 不同语言的使用
  9. 11.boolean类型
  10. Unity3D 开发ios时困扰多时游戏开始画面图片的分辨率