📄 98.c
字号:
.486
.model flat
extrn __fltused:near
extrn __ftol:near
_DATA segment
public _InputNum
align 4
_InputNum label byte
dd 45
public _RandomSign
align 4
_RandomSign label byte
dd 18467
dd 26500
dd 15724
dd 29358
dd 24464
dd 28145
dd 16827
dd 491
dd 11942
dd 5436
dd 14604
dd 153
dd 12382
dd 18716
dd 19895
dd 21726
dd 11538
dd 19912
dd 26299
dd 9894
dd 23811
dd 30333
dd 4664
dd 7711
dd 6868
dd 27644
dd 32757
dd 12859
dd 9741
dd 778
dd 3035
dd 1842
dd 30106
dd 8942
dd 22648
dd 23805
dd 6729
dd 15350
dd 31101
dd 3548
dd 12623
dd 19954
dd 11840
dd 7376
dd 26308
public _RandomSignout
align 4
_RandomSignout label byte
dd 153
dd 491
dd 778
dd 1842
dd 3035
dd 3548
dd 4664
dd 5436
dd 6729
dd 6868
dd 7376
dd 7711
dd 8942
dd 9741
dd 9894
dd 11538
dd 11840
dd 11942
dd 12382
dd 12623
dd 12859
dd 14604
dd 15350
dd 15724
dd 16827
dd 18467
dd 18716
dd 19895
dd 19912
dd 19954
dd 21726
dd 22648
dd 23805
dd 23811
dd 24464
dd 26299
dd 26308
dd 26500
dd 27644
dd 28145
dd 29358
dd 30106
dd 30333
dd 31101
dd 32757
public _quick_sort
_DATA ends
_TEXT segment
_quick_sort:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,12
mov edi,dword ptr (24)[ebp]
mov dword ptr (-4)[ebp],edi
mov edi,dword ptr (28)[ebp]
mov dword ptr (-8)[ebp],edi
mov edi,dword ptr (24)[ebp]
mov esi,dword ptr (20)[ebp]
mov edi,dword ptr [esi][edi*4]
mov dword ptr (-12)[ebp],edi
jmp L3
L5:
dec dword ptr (-8)[ebp]
L6:
mov edi,dword ptr (-8)[ebp]
cmp dword ptr (-4)[ebp],edi
jge L8
mov esi,dword ptr (20)[ebp]
mov ebx,dword ptr (-12)[ebp]
cmp dword ptr [esi][edi*4],ebx
jg L5
L8:
mov edi,dword ptr (20)[ebp]
mov esi,dword ptr (-4)[ebp]
mov ebx,dword ptr (-8)[ebp]
mov ebx,dword ptr [edi][ebx*4]
mov dword ptr [edi][esi*4],ebx
jmp L10
L9:
inc dword ptr (-4)[ebp]
L10:
mov edi,dword ptr (-4)[ebp]
cmp edi,dword ptr (-8)[ebp]
jge L12
mov esi,dword ptr (20)[ebp]
mov ebx,dword ptr (-12)[ebp]
cmp dword ptr [esi][edi*4],ebx
jle L9
L12:
mov edi,dword ptr (20)[ebp]
mov esi,dword ptr (-8)[ebp]
mov ebx,dword ptr (-4)[ebp]
mov ebx,dword ptr [edi][ebx*4]
mov dword ptr [edi][esi*4],ebx
mov edi,dword ptr (-4)[ebp]
mov esi,dword ptr (20)[ebp]
mov ebx,dword ptr (-12)[ebp]
mov dword ptr [esi][edi*4],ebx
mov edi,dword ptr (-4)[ebp]
sub edi,1
push edi
mov edi,dword ptr (24)[ebp]
push edi
mov edi,dword ptr (20)[ebp]
push edi
call _quick_sort
add esp,12
mov edi,dword ptr (28)[ebp]
push edi
mov edi,dword ptr (-4)[ebp]
lea edi,(1)[edi]
push edi
mov edi,dword ptr (20)[ebp]
push edi
call _quick_sort
add esp,12
L3:
mov edi,dword ptr (-8)[ebp]
cmp dword ptr (-4)[ebp],edi
jl L6
L1:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
public _quick_sort_test
_quick_sort_test:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,4
mov edi,dword ptr (_InputNum)
sub edi,1
push edi
push 0
lea edi,(_RandomSign)
push edi
call _quick_sort
add esp,12
mov dword ptr (-4)[ebp],0
jmp L17
L14:
mov edi,dword ptr (-4)[ebp]
lea edi,[edi*4]
mov esi,dword ptr (_RandomSignout)[edi]
cmp dword ptr (_RandomSign)[edi],esi
je L18
mov eax,1
jmp L13
L18:
L15:
inc dword ptr (-4)[ebp]
L17:
mov edi,dword ptr (_InputNum)
cmp dword ptr (-4)[ebp],edi
jl L14
mov eax,0
L13:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
public _main
_main:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,12
mov dword ptr (-4)[ebp],1
mov dword ptr (-8)[ebp],2
mov eax,dword ptr (-8)[ebp]
mov edi,dword ptr (-4)[ebp]
cdq
idiv edi
mov dword ptr (-12)[ebp],eax
call _quick_sort_test
add esp,0
cmp eax,1
jne L21
L21:
mov eax,1
L20:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
_TEXT ends
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -