Произвести попарные перестановки элементов одномерного массива (вставки в Pascal) - Assembler

Узнай цену своей работы

Формулировка задачи:

Произвести попарные перестановки элементов одномерного массива: первый элемент поменять местами с последним, второй элемент – с предпоследним и т.д.

Решение задачи: «Произвести попарные перестановки элементов одномерного массива (вставки в Pascal)»

textual
Листинг программы
  1. const
  2.   n=7;
  3. type
  4.   ta=array[0..n]of integer;
  5. var
  6.   a:ta;
  7.   i:integer;
  8. procedure Sort(var z:ta);
  9.   begin
  10.     asm
  11.       lds  si,z
  12.       mov  di,si
  13.       add  di,2*(n+1)
  14. @@01: mov  ax,[si]
  15.       xchg ax,[di]
  16.       mov  [si],ax
  17.       add  si,2
  18.       sub  di,2
  19.       cmp  di,si
  20.       jg   @@01
  21.     end;
  22.   end;
  23. begin
  24.   writeln;
  25.   for i:=1 to n do
  26.     begin
  27.       a[i]:=random(100);
  28.       write(a[i]:4);
  29.     end;
  30.   writeln;
  31.   Sort(a);
  32.   for i:=1 to n do
  33.     write(a[i]:4);
  34. end.

Объяснение кода листинга программы

  1. Объявляется константа n и тип ta - одномерный массив размерности n.
  2. Объявляются переменные: a - одномерный массив типа ta, i - целое число.
  3. Создается процедура Sort, которая принимает на вход массив z и сортирует его элементы попарными перестановками с использованием inline-ассемблерного кода.
  4. В основной программе инициализируется массив a случайными числами и выводится на экран.
  5. Вызывается процедура Sort, которая сортирует массив a попарными перестановками.
  6. Отсортированный массив a выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы