回 帖 发 新 帖 刷新版面

主题:大家有没插入排序的汇编代码啊 ?我想学习下

大家好拉 在这里给大家拜年拉 我现在要用汇编写个插入排序的程序 就是输入10个有符号的 排好了输出!大家有什么好的源程序么 我想学习下 谢谢拉!

回复列表 (共3个回复)

沙发

以前写的一个可以给C语言调用的整数(32位)排序函数, 供参考.

;/*===================================================
;                直接插入排序
;    从前往后,每个数插入自己之前已经排序好的数组中
;===================================================*/
SORT1 proc C pArray, iArrayLen
    pushad
    mov     ebx, pArray                 ;  ebx = pArray
    mov     ecx, iArrayLen              ;  ecx = ArrayLen
    mov     esi, 1
START:                                  ;  for esi = 1 ~ len - 1
    cmp     esi, ecx                    ;  {
    jge     RETURN                      ;      
    mov     edx, [ebx + esi * 4]
    lea     edi, [esi - 1]              ;      for edi = esi-1 ~ 0
LOP2:                                   ;      {
    mov     eax, [ebx + edi * 4]        ;           eax = arr[edi]
    cmp     edx, eax                    ;           if (edx >= eax)
    jge     @F                          ;               break;
    mov     [ebx + edi * 4 + 4], eax    ;           arr[edi+1] = eax
    dec     edi                         ;           edi--
    jns     LOP2                        ;      }
    jz      LOP2
@@:                                     ;      
    mov     [ebx + edi * 4 + 4], edx    ;      arr[edi + 1] = edx
    inc     esi                         ;      esi++
    jmp     START                       ;  }
RETURN:
    popad
    xor     eax, eax
    ret
SORT1 endp

板凳

先用C语言写一个插入排序的代码,然后再翻译成汇编不就是了?

3 楼

谢谢楼上的2位兄弟拉 仔细的学习中 祝你们新年愉快!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册