Переписать из массива А в массив В, те элементы массива А, индексы которых совпадают со значениями - Assembler
Формулировка задачи:
Здравствуйте, помогите написать программу на pascale с 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.
Объяснение кода листинга программы
- Объявляются константа
N
и массивыA
иB
типаbyte
и переменныеi
иLenB
типаinteger
. - Генерируется случайное значение для каждого элемента массива
A
. - Выводятся элементы массива
A
. - Переменная
LenB
устанавливается в 0. - В блоке ассемблерного кода происходит копирование элементов из массива
A
в массивB
, при этом увеличивается значение переменнойLenB
. - Выводятся элементы массива
B
, содержащие скопированные значения из массиваA
. Код копирует элементы из массиваA
в массивB
, те элементы, индексы которых совпадают со значениями.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д