0
我的任務是添加一個代碼,用插入排序對數組排序。 'printf'函數打印一個字符串 printArray打印陣列32位程序集 - 插入排序不能正常工作
由於某種原因數組沒有得到排序,我找不到原因。 幫助將不勝感激。
main:
push MSG ; print welcome message
call printf
add esp,4 ; clean the stack
call printArray ;print the unsorted array
;;;;;;;;;;add code here;;;;;;;;;;
mov eax,1
loop1:
mov ebx, array
add ebx, eax
loop2:
mov esi, ebx
dec esi
mov esi, [esi] ;esi holds the value before what ebx points to
cmp [ebx], esi
ja endLoop2
mov edx, esi
mov esi, ebx
dec esi
mov ecx, [ebx]
mov [esi], ecx
mov [ebx], edx
dec ebx
cmp ebx, array
ja loop2
endLoop2:
inc eax
cmp eax, 11
jbe loop1
;;;;;;;end of your code;;;;;;;;;;;;;;
call printArray
mov eax, 1 ;exit system call
int 0x80
改變了所有的公式和decs添加/子4,現在它似乎不打印陣列後的所有循環。也許它改變了數組的地址(?!) 對我來說沒有意義。其他任何你覺得不對的地方? – user3554255 2014-12-06 18:10:30
我做到了,它把整個事情搞砸了。 此外,您的評論是錯誤的,因爲該數組是DB,而不是整數。 – user3554255 2014-12-06 21:46:51
對不起,我猜我誤解了這個問題。我根據你的新信息編輯了我的答案。 – JS1 2014-12-06 22:06:15