section .data
array dd 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; Пример массива (32-битные элементы)
array_len equ ($ - array) ; Длина массива в байтах
num_elements equ array_len / 4 ; Количество элементов
section .text
global _start
_start:
mov esi, array ; Указатель на начало массива (первый элемент)
mov edi, array + array_len - 4 ; Указатель на конец массива (последний элемент)
mov ecx, num_elements / 2 ; Количество итераций (достаточно половины длины)
reverse_loop:
; Обмен значений между esi и edi
mov eax, [esi] ; Загружаем значение из начала
mov ebx, [edi] ; Загружаем значение из конца
mov [esi], ebx ; Сохраняем значение конца в начало
mov [edi], eax ; Сохраняем значение начала в конец
; Перемещаем указатели
add esi, 4 ; Сдвигаем начало вправо
sub edi, 4 ; Сдвигаем конец влево
; Повторяем цикл
loop reverse_loop
; Завершение программы
mov eax, 1 ; Системный вызов exit
xor ebx, ebx ; Код возврата 0
int 0x80
c2VjdGlvbiAuZGF0YQogICAgYXJyYXkgZGQgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAgICA7INCf0YDQuNC80LXRgCDQvNCw0YHRgdC40LLQsCAoMzIt0LHQuNGC0L3Ri9C1INGN0LvQtdC80LXQvdGC0YspCiAgICBhcnJheV9sZW4gZXF1ICgkIC0gYXJyYXkpICAgICAgICAgICAgICAgICA7INCU0LvQuNC90LAg0LzQsNGB0YHQuNCy0LAg0LIg0LHQsNC50YLQsNGFCiAgICBudW1fZWxlbWVudHMgZXF1IGFycmF5X2xlbiAvIDQgICAgICAgICAgICA7INCa0L7Qu9C40YfQtdGB0YLQstC+INGN0LvQtdC80LXQvdGC0L7QsgoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgbW92IGVzaSwgYXJyYXkgICAgICAgICAgICAgICAgOyDQo9C60LDQt9Cw0YLQtdC70Ywg0L3QsCDQvdCw0YfQsNC70L4g0LzQsNGB0YHQuNCy0LAgKNC/0LXRgNCy0YvQuSDRjdC70LXQvNC10L3RgikKICAgIG1vdiBlZGksIGFycmF5ICsgYXJyYXlfbGVuIC0gNCA7INCj0LrQsNC30LDRgtC10LvRjCDQvdCwINC60L7QvdC10YYg0LzQsNGB0YHQuNCy0LAgKNC/0L7RgdC70LXQtNC90LjQuSDRjdC70LXQvNC10L3RgikKICAgIG1vdiBlY3gsIG51bV9lbGVtZW50cyAvIDIgICAgIDsg0JrQvtC70LjRh9C10YHRgtCy0L4g0LjRgtC10YDQsNGG0LjQuSAo0LTQvtGB0YLQsNGC0L7Rh9C90L4g0L/QvtC70L7QstC40L3RiyDQtNC70LjQvdGLKQoKcmV2ZXJzZV9sb29wOgogICAgOyDQntCx0LzQtdC9INC30L3QsNGH0LXQvdC40Lkg0LzQtdC20LTRgyBlc2kg0LggZWRpCiAgICBtb3YgZWF4LCBbZXNpXSAgICAgIDsg0JfQsNCz0YDRg9C20LDQtdC8INC30L3QsNGH0LXQvdC40LUg0LjQtyDQvdCw0YfQsNC70LAKICAgIG1vdiBlYngsIFtlZGldICAgICAgOyDQl9Cw0LPRgNGD0LbQsNC10Lwg0LfQvdCw0YfQtdC90LjQtSDQuNC3INC60L7QvdGG0LAKICAgIG1vdiBbZXNpXSwgZWJ4ICAgICAgOyDQodC+0YXRgNCw0L3Rj9C10Lwg0LfQvdCw0YfQtdC90LjQtSDQutC+0L3RhtCwINCyINC90LDRh9Cw0LvQvgogICAgbW92IFtlZGldLCBlYXggICAgICA7INCh0L7RhdGA0LDQvdGP0LXQvCDQt9C90LDRh9C10L3QuNC1INC90LDRh9Cw0LvQsCDQsiDQutC+0L3QtdGGCgogICAgOyDQn9C10YDQtdC80LXRidCw0LXQvCDRg9C60LDQt9Cw0YLQtdC70LgKICAgIGFkZCBlc2ksIDQgICAgICAgICAgOyDQodC00LLQuNCz0LDQtdC8INC90LDRh9Cw0LvQviDQstC/0YDQsNCy0L4KICAgIHN1YiBlZGksIDQgICAgICAgICAgOyDQodC00LLQuNCz0LDQtdC8INC60L7QvdC10YYg0LLQu9C10LLQvgoKICAgIDsg0J/QvtCy0YLQvtGA0Y/QtdC8INGG0LjQutC7CiAgICBsb29wIHJldmVyc2VfbG9vcAoKICAgIDsg0JfQsNCy0LXRgNGI0LXQvdC40LUg0L/RgNC+0LPRgNCw0LzQvNGLCiAgICBtb3YgZWF4LCAxICAgICAgICAgIDsg0KHQuNGB0YLQtdC80L3Ri9C5INCy0YvQt9C+0LIgZXhpdAogICAgeG9yIGVieCwgZWJ4ICAgICAgICA7INCa0L7QtCDQstC+0LfQstGA0LDRgtCwIDAKICAgIGludCAweDgw