注册 登录
编程论坛 汇编论坛

用汇编实现的"冒泡排序算法"函数,请大家参考或指正~~

ONEPROBLEM 发布于 2008-10-13 10:06, 4499 次点击
;用汇编实现冒泡排序的函数
;参数说明:_lpData是待排序的数组首地址,_dwCount是待排序的个数,_dwOption设为0则由小到大排序
;如果是非0值,则是由大到小排序.
;返回值:已排序数据放回原数组中.
;作者:ONEPROBLEM
;=================================================
_BubblingSort proc _lpData,_dwCount,_dwOption
    local @dwCount
 
    pushad
    mov edi,1
    .while edi < _dwCount
        mov esi,_lpData
        mov eax,_dwCount
        mov @dwCount,eax
        sub @dwCount,edi
        mov ebx,1
            .while ebx <= @dwCount
                mov eax,[esi]
                .if eax<[esi+4] && _dwOption==0
                    jmp next
                .elseif eax>[esi+4] && _dwOption==0
                    jmp continue
                .elseif eax<[esi+4] && _dwOption!=0
                    jmp continue
                .elseif eax>[esi+4] && _dwOption!=0
                    jmp next
                .endif
                continue:
                mov eax,[esi]
                mov edx,[esi+4]
                mov [esi],edx
                mov [esi+4],eax
                next:
                add esi,4
                inc ebx
            .endw
            inc edi
    .endw
    popad
    ret
_BubblingSort endp
;=================================================
8 回复
#2
ONEPROBLEM2008-10-13 10:09
我写了个调用这个函数的例子程序,有兴趣的朋友可以到我的空间查看~~
另:
这个函数其实有待完善~~如,并没有设置函数是否调用成功的返回值.
#3
ONEPROBLEM2008-10-13 10:12
函数用了两个"while"循环,其实是参照了C语言中的两个"for"循环~~
#4
zklhp2008-10-13 12:46
不错 学习下
#5
你们都要疼我哦2008-10-14 01:35
学习学习
#6
黑边眼镜2008-11-12 21:36
请教
怎么用冒泡排序法对字符串进行排序,结果显示在屏幕上?
#7
ONEPROBLEM2008-11-12 22:41
回复 6# 的帖子
字符串排序?
用什么汇编啊?
#8
swp1601082008-11-13 13:18
masm自己带有多个排序算法的源码
#9
Mrstudy2011-09-10 00:05
O(∩_∩)O謝謝
1