Артём .
Профи
(808)
1 неделю назад
.model small
.stack 100h
.data
array db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; Пример массива
.code
main:
mov ax, @data
mov ds, ax
mov si, 0 ; Указатель на начало массива
mov di, 10 ; Указатель на конец массива (10 элементов)
swap_loop:
mov al, array[si] ; Загружаем первый элемент массива в AL
mov ah, array[di] ; Загружаем последний элемент массива в AH
mov array[si], ah ; Перемещаем последний элемент на место первого
mov array[di], al ; Перемещаем первый элемент на место последнего
inc si ; Увеличиваем указатель на начало массива
dec di ; Уменьшаем указатель на конец массива
cmp si, di ; Проверяем, достигли ли мы середины массива
jae end_swap ; Если да, завершаем процесс
jmp swap_loop ; Продолжаем обмен
end_swap:
; В этой точке массив уже отсортирован
; Можно выполнить дальнейшие действия, если нужно
mov ax, 4c00h ; Выход из
программы
int 21h
end main
16-разрядный микропроцессор I8086