主题:大家有没插入排序的汇编代码啊 ?我想学习下
valon
[专家分:0] 发布于 2006-01-02 20:10:00
大家好拉 在这里给大家拜年拉 我现在要用汇编写个插入排序的程序 就是输入10个有符号的 排好了输出!大家有什么好的源程序么 我想学习下 谢谢拉!
回复列表 (共3个回复)
沙发
aboutbmp [专家分:830] 发布于 2006-01-03 22:26:00
以前写的一个可以给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
板凳
yangyangMars [专家分:210] 发布于 2006-01-03 22:51:00
先用C语言写一个插入排序的代码,然后再翻译成汇编不就是了?
3 楼
valon [专家分:0] 发布于 2006-01-04 13:25:00
谢谢楼上的2位兄弟拉 仔细的学习中 祝你们新年愉快!!
我来回复