Произвести попарные перестановки элементов одномерного массива (вставки в 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
выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д