section .bss
arr resd 10000
section .text
extern io_get_dec, io_print_dec, io_print_char
global main
main:
mov ebp, esp
call io_get_dec
mov ebx, eax ; n
mov esi, 0 ; counter
call io_get_dec
mov dword [arr + esi * 4], eax
inc esi
.input:
call io_get_dec
mov dword [arr + esi * 4], eax
inc esi
cmp esi, ebx
jl .input
mov esi, 0 ; i
.sort_i:
mov edi, 0 ; j
.sort_j:
mov eax, dword [arr + edi * 4]
cmp eax, dword [arr + (edi + 1) * 4]
jle .next_j
mov ecx, dword [arr + (edi + 1) * 4]
mov dword [arr + edi * 4], ecx
mov dword [arr + (edi + 1) * 4], eax
.next_j:
inc edi
mov edx, ebx
sub edx, esi
dec edx
cmp edi, edx
jl .sort_j
.next_i:
inc esi
cmp esi, ebx - 1
jl .sort_i
mov esi, 0 ; counter
.output:
mov eax, dword [arr + esi * 4]
call io_print_dec
mov eax, ' '
call io_print_char
inc esi
cmp esi, ebx
jl .output
xor eax, eax
ret