section .bss
arr resd 10000
section .text
extern io_get_dec, io_print_dec, io_newline, io_print_char
global main
main:
call io_get_dec
mov esi, eax
mov ecx, esi
lea edi, [arr]
input_start:
push ecx
call io_get_dec
pop ecx
mov [edi], eax
xor eax, eax
add edi, 4
dec ecx
cmp ecx, 0
jne input_start
input_end:
lea edi, [arr]
mov ecx, esi
sort_start: ; сравниваем ел-нт edi с edi + 4
mov ebx, [edi]
mov edx, [edi+4]
cmp ebx, edx
ja more
jmp next_el
more: ; меняет значение местами между регистрами
mov [edi], edx
mov [edi+4], ebx
next_el:
add edi, 4
dec ecx
cmp ecx, 0
jne sort_start
sort_end:
lea edi, [arr]
mov ecx, esi
output_start:
mov eax, [edi]
push ecx
call io_print_dec
mov eax, ' '
call io_print_char
pop ecx
add edi, 4
dec ecx
cmp ecx, 0
jne output_start
output_end:
call io_newline
xor eax, eax
ret