Произвести попарные перестановки элементов одномерного массива (вставки в Pascal) - Assembler
Формулировка задачи:
Произвести попарные перестановки элементов одномерного
массива: первый элемент поменять местами с последним, второй
элемент – с предпоследним и т.д.
Решение задачи: «Произвести попарные перестановки элементов одномерного массива (вставки в Pascal)»
textual
Листинг программы
const n=7; type ta=array[0..n]of integer; var a:ta; i:integer; procedure Sort(var z:ta); begin asm lds si,z mov di,si add di,2*(n+1) @@01: mov ax,[si] xchg ax,[di] mov [si],ax add si,2 sub di,2 cmp di,si jg @@01 end; end; begin writeln; for i:=1 to n do begin a[i]:=random(100); write(a[i]:4); end; writeln; Sort(a); for i:=1 to n do write(a[i]:4); end.
Объяснение кода листинга программы
- Объявляется константа
n
и типta
- одномерный массив размерности n. - Объявляются переменные:
a
- одномерный массив типаta
,i
- целое число. - Создается процедура
Sort
, которая принимает на вход массивz
и сортирует его элементы попарными перестановками с использованием inline-ассемблерного кода. - В основной программе инициализируется массив
a
случайными числами и выводится на экран. - Вызывается процедура
Sort
, которая сортирует массивa
попарными перестановками. - Отсортированный массив
a
выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д