Online Compiler Nasm

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 cmp ecx, 0 je sort_end 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 jmp sort_start sort_end: lea edi, [arr] mov ecx, esi output_start: cmp ecx, 0 je output_end mov eax, [edi] push ecx call io_print_dec mov eax, ' ' call io_print_char pop ecx add edi, 4 dec ecx jmp output_start output_end: call io_newline xor eax, eax ret
1) Этот код считывает количество чисел, затем сами числа, пытается отсортировать их методом "пузырька" (но с ошибкой в алгоритме), и выводит результат.

2) Подсказки:
   - Внешний цикл сортировки отсутствует, поэтому обмен элементов происходит только один проход по массиву.
   - После обмена элементов в секции `more` нужно сбросить индекс или организовать вложенные циклы для полноценной сортировки.