Online Compiler Nasm

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 mov ecx, 0 ;итератор .L1: cmp ebx, ecx jle .L2 ;условие выхода из цикла call io_get_dec mov [A + ecx * 4], eax ;читаем новый элементик add ecx, 1 jmp .L1 xor ecx, ecx ;итератор почистили .L2: ;получаем неотсортированный массив xor ecx, ecx .L3 ;делаем пузырьком cmp ebx, ecx jle .L7 ;условие выхода из цикла add ecx, 1 mov edx, 0 ;итератор для второго цикла mov edi, ebx dec edi sub edi, ecx ;обозначили колво итераций 2 цикла .L4: cmp edi, edx jle .L3 ;условие выхода из цикла (новая итерация первого) 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: add edx, 1 jmp .L4 .L7: xor ecx, ecx .L8: cmp ebx, ecx jle .L9 ;условие выхода из цикла mov eax, [A + ecx * 4] call io_print_dec ;выводим новый элементик add ecx, 1 jmp .L8 .L9: xor eax, eax ret
1) Этот код считывает число N, затем N целых чисел в массив, сортирует их по возрастанию методом пузырька и выводит отсортированный массив.

2) Обрати внимание, что после метки `.L2` пропущено двоеточие у метки `.L3`. Также учти, что инструкция `xor ecx, ecx` после `jmp .L1` никогда не выполняется, так как находится после безусловного перехода.