-
-
[旧帖]
[原创]一个堆排序的简单实现(masm版本)
0.00雪花
-
-
[旧帖] [原创]一个堆排序的简单实现(masm版本)
0.00雪花
前几天发了同题的一篇帖子,给出了c语言版本的堆排序,今天给出masm版本,聊作练习
.386
.model flat, stdcall
include windows.inc
include user32.inc
include kernel32.inc
includelib kernel32.lib
includelib user32.lib
includelib msvcrt.lib
printf PROTO C :VARARG
getchar proto C
.data
array dd 0 ,4,1,3,2,16,9,10,14,8,7
szMessage db "%d ",0
.code
start:
call main
call getchar
main proc
LOCAL i:DWORD
LOCAL j:DWORD
LOCAL len:DWORD
xor edx, edx
mov eax, sizeof array
mov bx, sizeof DWORD
div bx
mov len, eax
mov eax, len
mov bx, 2
div bx
mov i, eax
.while i >= 1
push len
push i
call HeapAdjust
dec i
.endw
mov eax, len
dec eax
mov j, eax
.while j>=1
invoke printf, offset szMessage, array[4]
mov ecx, j
mov eax, array[ecx*4]
mov array[4], eax
push j
[注意]看雪招聘,专注安全领域的专业人才平台!