用汇编实现冒泡排序算法的函数

作者在 2008-10-12 07:42:16 发布以下内容
;用汇编实现冒泡排序的函数
;参数说明:_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
;=================================================
文章评论,共0条
游客请输入验证码