Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format PE console
- entry start
- include 'win32a.inc'
- section '.data' data readable writeable
- array dd 5, 2, 9, 3, 1 ; пример массива для сортировки
- array_size equ ($ - array) / 4
- section '.code' code readable executable
- start:
- mov ecx, array_size
- outer_loop:
- mov edx, 0
- mov ebx, ecx
- dec ebx
- inner_loop:
- mov eax, [array + edx * 4]
- cmp eax, [array + edx * 4 + 4]
- jbe not_swap
- mov eax, [array + edx * 4]
- mov ebx, [array + edx * 4 + 4]
- mov [array + edx * 4], ebx
- mov [array + edx * 4 + 4], eax
- not_swap:
- inc edx
- loop inner_loop
- loop outer_loop
- mov ecx, array_size
- print_loop:
- mov eax, [array + ecx * 4 - 4]
- print eax
- dec ecx
- jnz print_loop
- call [ExitProcess]
- section '.idata' import data readable writeable
- library kernel32, 'kernel32.dll',\
- user32, 'user32.dll'
- import kernel32,\
- ExitProcess, 'ExitProcess'
- import user32,\
- wsprintf, 'wsprintfA'
- section '.text' code readable executable
- proc print
- enter
- invoke wsprintf, buffer, '%d', [ebp + 8]
- invoke StdOut, buffer
- return
- endp
- section '.bss' data readable writeable
- buffer rb 16
- section '.reloc' fixups data discardable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement