Переписать из массива А в массив В, те элементы массива А, индексы которых совпадают со значениями - Assembler

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

Здравствуйте, помогите написать программу на pascale с assembler вставкой. Задание такое: Переписать из массива А в массив В, те элементы массива А, индексы которых совпадают со значениями.

Код к задаче: «Переписать из массива А в массив В, те элементы массива А, индексы которых совпадают со значениями - Assembler»

textual
program Pascal;
 
const
  N = 15;
var
  A, B: array [0..N - 1] of byte;
  i: integer;
  LenB: integer;
begin
  randomize;
  Write('i: ');
  for i := 0 to N - 1 do
    Write(i: 3);
  writeln;
  {заполнение массива A случайными числами}
  for i := low(A) to High(A) do
    A[i] := random(High(A) + 1);
  Write('A: ');
  for i := low(A) to High(A) do
    Write(A[i]: 3);
  writeln;
  {количество элементов в массиве B пока равно 0}
  LenB := 0;
  asm
    MOV CX, N
    MOV AL, 0
    LEA SI, A
    LEA DI, B
  @@For:
    CMP AL, [SI]
    JNE @@Next
    MOV [DI], AL
    ADD DI, 1
    INC LenB
  @@Next:
    INC AL
    ADD SI, 1
    LOOP @@For
  end;
  Write('B: ');
  for i := 1 to LenB do
    Write(B[i - 1]: 3);
  writeln;
end.

10   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ