extern io_get_dec, io_print_dec, io_newline
section .bss
A resd 10000
section .text
global main
main:
call io_get_dec
mov ebx, eax ; N
xor ecx, ecx ; i = 0
.L1:
cmp ecx, ebx
jge .L2
call io_get_dec
mov [A + ecx * 4], eax
inc ecx
jmp .L1
.L2:
xor ecx, ecx ; внешний цикл
.L3:
cmp ecx, ebx
jge .L7
inc ecx
xor edx, edx ; внутренний цикл
mov edi, ebx
dec edi
sub edi, ecx ; edi = N - 1 - ecx
.L4:
cmp edx, edi
jg .L3 ; можно jge / jg в зависимости от границ
mov eax, [A + edx * 4]
cmp eax, [A + edx * 4 + 4]
jle .L6
mov esi, [A + edx * 4 + 4]
mov [A + edx * 4], esi
mov [A + edx * 4 + 4], eax
.L6:
inc edx
jmp .L4
.L7:
xor ecx, ecx
.L8:
cmp ecx, ebx
jge .L9
mov eax, [A + ecx * 4]
call io_print_dec
call io_newline
inc ecx
jmp .L8
.L9:
xor eax, eax
ret