ХАНДЫФАР

Функция ArrayCopyIf копирует элементы из первого массива во второй массив на основании условия, заданного пользовательской функцией, переданной через указатель. Если размер массива DX = 0, функция завершает работу без изменений. Пользовательская функция обязана сохранять регистры AX, BX, DX, SI и DI в стеке.

Параметры:

  • DS:AX: Указатель на первый массив (источник).
  • ES:BX: Указатель на второй массив (назначение).
  • CX: ___Указатель на пользовательскую функцию, которая определяет, должен ли элемент _______быть скопирован.
  • DX: ___Размер массива (количество элементов). Если DX = 0, функция завершает работу.

Возвращаемое значение:

  • CX: Количество скопированных элементов во втором массиве.

Состояние флагов:

  • Функция не изменяет состояние флагов.

Особенности:

  • Функция проходит по первому массиву и копирует элементы во второй массив, если они удовлетворяют условию, заданному пользовательской функцией.

  • Пользовательская функция должна возвращать ZF=1, если элемент должен быть скопирован, и ZF=0, если нет.

  • Если размер массива DX = 0, функция завершает работу и возвращает DX = 0.

  • Функция не изменяет значения регистров, кроме CX.
Made on
Tilda