extern io_get_dec, io_print_dec, io_newline
section .bss
A resd 10000 ;массив
section .text
global main
main:
call io_get_udec
mov ebx, eax ;N
mov ecx, 0 ;итератор
.L1:
cmp ebx, ecx
jge .L2 ;условие выхода из цикла
call io_get_dec
mov [A + ecx * 4], eax ;читаем новый элементик
add ecx, 1
jmp .L1
xor ecx, ecx ;итератор почистили
.L2: ;получаем неотсортированный массив, делаем пузырьком
cmp ebx, ecx
jge .L6 ;условие выхода из цикла
mov edx, 0 ;итератор для второго цикла
mov edi, ebx
dec edi
dec edi, ecx ;обозначили колво итераций 2 цикла
.L3:
cmp edi, edx
jge .L2 ;условие выхода из цикла (новая итерация первого)
cmp [A + edx * 4], [a + edx * 4 + 4]
jle .L5
mov eax, [A + edx * 4]
mov [A + edx * 4], [a + edx * 4 + 4]
mov [a + edx * 4 + 4], eax ;свапнули
.L5
jmp .L3
.L6
call io_print_dec
xor eax, eax
ret