section .data
array db 64, 25, 12, 22, 11 ; Пример массива для сортировки
array_size equ $ - array ; Размер массива
section .text
global _start
_start:
; Ваш код начинается здесь
mov ecx, array_size ; Загрузка размера массива в ecx
outer_loop:
mov esi, 0 ; Индекс текущего минимального элемента
mov ebx, esi ; Индекс для внутреннего цикла
inner_loop:
cmp ebx, ecx ; Проверка окончания внутреннего цикла
je inner_loop_done ; Если равно, завершаем внутренний цикл
mov eax, ebx ; Загружаем индекс в eax
add eax, array ; Вычисляем адрес текущего элемента массива
mov edx, [eax] ; Загружаем значение текущего элемента в edx
mov eax, esi ; Загружаем индекс минимального элемента в eax
add eax, array ; Вычисляем адрес минимального элемента массива
mov edi, [eax] ; Загружаем значение минимального элемента в edi
cmp edx, edi ; Сравниваем текущий элемент с минимальным
jge not_less ; Если текущий элемент >= минимального, переходим к not_less
; Если текущий элемент < минимального, обновляем индекс минимального элемента
mov esi, ebx
not_less:
inc ebx ; Увеличиваем индекс внутреннего цикла
jmp inner_loop ; Переходим к следующей итерации внутреннего цикла
inner_loop_done:
; Обмен местами элементов в массиве
mov eax, esi ; Загружаем индекс минимального элемента в eax
add eax, array ; Вычисляем адрес минимального элемента массива
mov ecx, [eax] ; Загружаем значение минимального элемента в ecx
mov eax, 0 ; Загружаем индекс первого элемента в массиве
add eax, array ; Вычисляем адрес первого элемента массива
mov edx, [eax] ; Загружаем значение первого элемента в edx
; Меняем местами элементы
mov eax, 0 ; Загружаем индекс первого элемента в массиве
add eax, array ; Вычисляем адрес первого элемента массива
mov [eax], ecx ; Записываем значение минимального элемента в первый элемент
mov eax, esi ; Загружаем индекс минимального элемента в eax
add eax, array ; Вычисляем адрес минимального элемента массива
mov [eax], edx ; Записываем значение первого элемента в место минимального
; Уменьшаем размер неотсортированной части массива
dec ecx
cmp ecx, 1 ; Проверка окончания внешнего цикла
jg outer_loop
; Ваш код заканчивается здесь
; Ваш код для вывода отсортированного массива в консоль
; может быть добавлен здесь
; Завершаем программу
mov eax, 1 ; Системный вызов для выхода
xor ebx, ebx ; Код возврата 0
int 0x80 ; Вызываем прерывание
c2VjdGlvbiAuZGF0YQogICAgYXJyYXkgZGIgNjQsIDI1LCAxMiwgMjIsIDExICAgOyDQn9GA0LjQvNC10YAg0LzQsNGB0YHQuNCy0LAg0LTQu9GPINGB0L7RgNGC0LjRgNC+0LLQutC4CiAgICBhcnJheV9zaXplIGVxdSAkIC0gYXJyYXkgICAgICAgOyDQoNCw0LfQvNC10YAg0LzQsNGB0YHQuNCy0LAKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsg0JLQsNGIINC60L7QtCDQvdCw0YfQuNC90LDQtdGC0YHRjyDQt9C00LXRgdGMCgogICAgbW92IGVjeCwgYXJyYXlfc2l6ZSAgICAgICAgICAgIDsg0JfQsNCz0YDRg9C30LrQsCDRgNCw0LfQvNC10YDQsCDQvNCw0YHRgdC40LLQsCDQsiBlY3gKCm91dGVyX2xvb3A6CiAgICBtb3YgZXNpLCAwICAgICAgICAgICAgICAgICAgICAgOyDQmNC90LTQtdC60YEg0YLQtdC60YPRidC10LPQviDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsAogICAgbW92IGVieCwgZXNpICAgICAgICAgICAgICAgICAgIDsg0JjQvdC00LXQutGBINC00LvRjyDQstC90YPRgtGA0LXQvdC90LXQs9C+INGG0LjQutC70LAKCmlubmVyX2xvb3A6CiAgICBjbXAgZWJ4LCBlY3ggICAgICAgICAgICAgICAgICAgOyDQn9GA0L7QstC10YDQutCwINC+0LrQvtC90YfQsNC90LjRjyDQstC90YPRgtGA0LXQvdC90LXQs9C+INGG0LjQutC70LAKICAgIGplICBpbm5lcl9sb29wX2RvbmUgICAgICAgICAgICA7INCV0YHQu9C4INGA0LDQstC90L4sINC30LDQstC10YDRiNCw0LXQvCDQstC90YPRgtGA0LXQvdC90LjQuSDRhtC40LrQuwoKICAgIG1vdiBlYXgsIGVieCAgICAgICAgICAgICAgICAgICA7INCX0LDQs9GA0YPQttCw0LXQvCDQuNC90LTQtdC60YEg0LIgZWF4CiAgICBhZGQgZWF4LCBhcnJheSAgICAgICAgICAgICAgICAgOyDQktGL0YfQuNGB0LvRj9C10Lwg0LDQtNGA0LXRgSDRgtC10LrRg9GJ0LXQs9C+INGN0LvQtdC80LXQvdGC0LAg0LzQsNGB0YHQuNCy0LAKICAgIG1vdiBlZHgsIFtlYXhdICAgICAgICAgICAgICAgICA7INCX0LDQs9GA0YPQttCw0LXQvCDQt9C90LDRh9C10L3QuNC1INGC0LXQutGD0YnQtdCz0L4g0Y3Qu9C10LzQtdC90YLQsCDQsiBlZHgKCiAgICBtb3YgZWF4LCBlc2kgICAgICAgICAgICAgICAgICAgOyDQl9Cw0LPRgNGD0LbQsNC10Lwg0LjQvdC00LXQutGBINC80LjQvdC40LzQsNC70YzQvdC+0LPQviDRjdC70LXQvNC10L3RgtCwINCyIGVheAogICAgYWRkIGVheCwgYXJyYXkgICAgICAgICAgICAgICAgIDsg0JLRi9GH0LjRgdC70Y/QtdC8INCw0LTRgNC10YEg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAg0LzQsNGB0YHQuNCy0LAKICAgIG1vdiBlZGksIFtlYXhdICAgICAgICAgICAgICAgICA7INCX0LDQs9GA0YPQttCw0LXQvCDQt9C90LDRh9C10L3QuNC1INC80LjQvdC40LzQsNC70YzQvdC+0LPQviDRjdC70LXQvNC10L3RgtCwINCyIGVkaQoKICAgIGNtcCBlZHgsIGVkaSAgICAgICAgICAgICAgICAgICA7INCh0YDQsNCy0L3QuNCy0LDQtdC8INGC0LXQutGD0YnQuNC5INGN0LvQtdC80LXQvdGCINGBINC80LjQvdC40LzQsNC70YzQvdGL0LwKICAgIGpnZSAgbm90X2xlc3MgICAgICAgICAgICAgICAgICA7INCV0YHQu9C4INGC0LXQutGD0YnQuNC5INGN0LvQtdC80LXQvdGCID49INC80LjQvdC40LzQsNC70YzQvdC+0LPQviwg0L/QtdGA0LXRhdC+0LTQuNC8INC6IG5vdF9sZXNzCgogICAgOyDQldGB0LvQuCDRgtC10LrRg9GJ0LjQuSDRjdC70LXQvNC10L3RgiA8INC80LjQvdC40LzQsNC70YzQvdC+0LPQviwg0L7QsdC90L7QstC70Y/QtdC8INC40L3QtNC10LrRgSDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsAogICAgbW92IGVzaSwgZWJ4Cgpub3RfbGVzczoKICAgIGluYyBlYnggICAgICAgICAgICAgICAgICAgICAgICA7INCj0LLQtdC70LjRh9C40LLQsNC10Lwg0LjQvdC00LXQutGBINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0YbQuNC60LvQsAogICAgam1wIGlubmVyX2xvb3AgICAgICAgICAgICAgICAgIDsg0J/QtdGA0LXRhdC+0LTQuNC8INC6INGB0LvQtdC00YPRjtGJ0LXQuSDQuNGC0LXRgNCw0YbQuNC4INCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0YbQuNC60LvQsAoKaW5uZXJfbG9vcF9kb25lOgogICAgOyDQntCx0LzQtdC9INC80LXRgdGC0LDQvNC4INGN0LvQtdC80LXQvdGC0L7QsiDQsiDQvNCw0YHRgdC40LLQtQogICAgbW92IGVheCwgZXNpICAgICAgICAgICAgICAgICAgIDsg0JfQsNCz0YDRg9C20LDQtdC8INC40L3QtNC10LrRgSDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsCDQsiBlYXgKICAgIGFkZCBlYXgsIGFycmF5ICAgICAgICAgICAgICAgICA7INCS0YvRh9C40YHQu9GP0LXQvCDQsNC00YDQtdGBINC80LjQvdC40LzQsNC70YzQvdC+0LPQviDRjdC70LXQvNC10L3RgtCwINC80LDRgdGB0LjQstCwCiAgICBtb3YgZWN4LCBbZWF4XSAgICAgICAgICAgICAgICAgOyDQl9Cw0LPRgNGD0LbQsNC10Lwg0LfQvdCw0YfQtdC90LjQtSDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsCDQsiBlY3gKCiAgICBtb3YgZWF4LCAwICAgICAgICAgICAgICAgICAgICAgOyDQl9Cw0LPRgNGD0LbQsNC10Lwg0LjQvdC00LXQutGBINC/0LXRgNCy0L7Qs9C+INGN0LvQtdC80LXQvdGC0LAg0LIg0LzQsNGB0YHQuNCy0LUKICAgIGFkZCBlYXgsIGFycmF5ICAgICAgICAgICAgICAgICA7INCS0YvRh9C40YHQu9GP0LXQvCDQsNC00YDQtdGBINC/0LXRgNCy0L7Qs9C+INGN0LvQtdC80LXQvdGC0LAg0LzQsNGB0YHQuNCy0LAKICAgIG1vdiBlZHgsIFtlYXhdICAgICAgICAgICAgICAgICA7INCX0LDQs9GA0YPQttCw0LXQvCDQt9C90LDRh9C10L3QuNC1INC/0LXRgNCy0L7Qs9C+INGN0LvQtdC80LXQvdGC0LAg0LIgZWR4CgogICAgOyDQnNC10L3Rj9C10Lwg0LzQtdGB0YLQsNC80Lgg0Y3Qu9C10LzQtdC90YLRiwogICAgbW92IGVheCwgMCAgICAgICAgICAgICAgICAgICAgIDsg0JfQsNCz0YDRg9C20LDQtdC8INC40L3QtNC10LrRgSDQv9C10YDQstC+0LPQviDRjdC70LXQvNC10L3RgtCwINCyINC80LDRgdGB0LjQstC1CiAgICBhZGQgZWF4LCBhcnJheSAgICAgICAgICAgICAgICAgOyDQktGL0YfQuNGB0LvRj9C10Lwg0LDQtNGA0LXRgSDQv9C10YDQstC+0LPQviDRjdC70LXQvNC10L3RgtCwINC80LDRgdGB0LjQstCwCiAgICBtb3YgW2VheF0sIGVjeCAgICAgICAgICAgICAgICAgOyDQl9Cw0L/QuNGB0YvQstCw0LXQvCDQt9C90LDRh9C10L3QuNC1INC80LjQvdC40LzQsNC70YzQvdC+0LPQviDRjdC70LXQvNC10L3RgtCwINCyINC/0LXRgNCy0YvQuSDRjdC70LXQvNC10L3RggoKICAgIG1vdiBlYXgsIGVzaSAgICAgICAgICAgICAgICAgICA7INCX0LDQs9GA0YPQttCw0LXQvCDQuNC90LTQtdC60YEg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAg0LIgZWF4CiAgICBhZGQgZWF4LCBhcnJheSAgICAgICAgICAgICAgICAgOyDQktGL0YfQuNGB0LvRj9C10Lwg0LDQtNGA0LXRgSDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsCDQvNCw0YHRgdC40LLQsAogICAgbW92IFtlYXhdLCBlZHggICAgICAgICAgICAgICAgIDsg0JfQsNC/0LjRgdGL0LLQsNC10Lwg0LfQvdCw0YfQtdC90LjQtSDQv9C10YDQstC+0LPQviDRjdC70LXQvNC10L3RgtCwINCyINC80LXRgdGC0L4g0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+CgogICAgOyDQo9C80LXQvdGM0YjQsNC10Lwg0YDQsNC30LzQtdGAINC90LXQvtGC0YHQvtGA0YLQuNGA0L7QstCw0L3QvdC+0Lkg0YfQsNGB0YLQuCDQvNCw0YHRgdC40LLQsAogICAgZGVjIGVjeAogICAgY21wIGVjeCwgMSAgICAgICAgICAgICAgICAgICAgIDsg0J/RgNC+0LLQtdGA0LrQsCDQvtC60L7QvdGH0LDQvdC40Y8g0LLQvdC10YjQvdC10LPQviDRhtC40LrQu9CwCiAgICBqZyAgb3V0ZXJfbG9vcAoKICAgIDsg0JLQsNGIINC60L7QtCDQt9Cw0LrQsNC90YfQuNCy0LDQtdGC0YHRjyDQt9C00LXRgdGMCgogICAgOyDQktCw0Ygg0LrQvtC0INC00LvRjyDQstGL0LLQvtC00LAg0L7RgtGB0L7RgNGC0LjRgNC+0LLQsNC90L3QvtCz0L4g0LzQsNGB0YHQuNCy0LAg0LIg0LrQvtC90YHQvtC70YwKICAgIDsg0LzQvtC20LXRgiDQsdGL0YLRjCDQtNC+0LHQsNCy0LvQtdC9INC30LTQtdGB0YwKCiAgICA7INCX0LDQstC10YDRiNCw0LXQvCDQv9GA0L7Qs9GA0LDQvNC80YMKICAgIG1vdiBlYXgsIDEgICAgICAgICAgICAgICAgICAgICAgOyDQodC40YHRgtC10LzQvdGL0Lkg0LLRi9C30L7QsiDQtNC70Y8g0LLRi9GF0L7QtNCwCiAgICB4b3IgZWJ4LCBlYnggICAgICAgICAgICAgICAgICAgIDsg0JrQvtC0INCy0L7Qt9Cy0YDQsNGC0LAgMAogICAgaW50IDB4ODAgICAgICAgICAgICAgICAgICAgICAgICA7INCS0YvQt9GL0LLQsNC10Lwg0L/RgNC10YDRi9Cy0LDQvdC40LUKCg==