汇编实现冒泡排序
来源:互联网 发布:西班牙内战 知乎 编辑:程序博客网 时间:2024/05/01 02:54
;用汇编实现 冒泡排序
data segment
ary db 6,2,5,1,3,4,9,8,7
aryCount dw $-ary
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bx,0
mov cx,aryCount
outLoop:
inc bx
push cx
mov cx,aryCount
sub cx,bx ;每次外循环循环一次内循环少比较一次
lea si,ary ;地址指向
;---------------------------------------------------下面是内循环
innerLoop:
mov al,[si]
cmp al,[si+1]
jge next ;有符号数大于等于则不做操作
xchg al,[si+1]
xchg al,[si]
next:
inc si
loop innerLoop
;---------------------------------------------------
pop cx
loop outLoop ;判断cx的值若为0则结束循环
mov ax,4c00h
int 21h
code ends
data segment
ary db 6,2,5,1,3,4,9,8,7
aryCount dw $-ary
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bx,0
mov cx,aryCount
outLoop:
inc bx
push cx
mov cx,aryCount
sub cx,bx ;每次外循环循环一次内循环少比较一次
lea si,ary ;地址指向
;---------------------------------------------------下面是内循环
innerLoop:
mov al,[si]
cmp al,[si+1]
jge next ;有符号数大于等于则不做操作
xchg al,[si+1]
xchg al,[si]
next:
inc si
loop innerLoop
;---------------------------------------------------
pop cx
loop outLoop ;判断cx的值若为0则结束循环
mov ax,4c00h
int 21h
code ends
end start
源代码在上面 下面分析下 怎么实现冒泡排序的
ary 获取数组元素
运用 $-变量名 来获取数组长度
然后运用两个loop循环
outLoop:
loop outLoop
外循环 循环数组长度次 每次将一个最小值冒出
内循环
innerLoop:
loop innerLoop
内循环 具体实现每次冒出及交换元素
需要注意的是这里两次都要用到计数器 cx 所以选择将cx在外循环中 push 与 pop保存
0 0
- 汇编实现冒泡排序
- 汇编实现冒泡排序
- 汇编实现冒泡排序
- 汇编实现排序——冒泡排序
- 用汇编实现冒泡排序算法
- 汇编 实现正负数的冒泡排序
- 51单片机汇编实现冒泡排序
- 8051单片机,汇编实现的冒泡排序
- 冒泡排序 汇编
- 汇编冒泡排序
- 汇编--冒泡排序
- 【汇编】 冒泡排序。。。
- 汇编冒泡排序
- 汇编---冒泡排序
- 汇编写冒泡排序
- MIPS汇编:冒泡排序
- 汇编冒泡排序
- 汇编-冒泡排序
- [kuangbin带你飞]专题四 最短路练习 N POJ 1847
- caffe中基本层及参数定义
- 实现引导页的两种方式
- 有了自己的一个小空间真好!坚持把matlab的笔记写下来(理想还是要有的)
- 前端算法与抽象化概念及其程序模型的建立关系
- 汇编实现冒泡排序
- USB-HDD 和 USB-FDD 有什么区别?
- eclipse代码误删或者没了怎么办,告诉你个强大的功能
- Lua table.getn() 用法
- eclipse安装activiti插件出现的问题及解决
- leetCode_Frog Jump
- LeetCode—416. Partition Equal Subset Sum
- Linux命令——解决ln -s 软链接产生Too many levels of symbolic links错误
- 单机最大tcp连接数