Функция
ArrayCopyIfEx копирует элементы из первого массива во второй массив на основании условия, заданного пользовательской функцией, переданной через указатель. Если размер массива 0, функция завершает работу без изменений. Пользовательская функция обязана сохранять регистры AX, BX, DX, SI и DI в стеке. Функция
ArrayCopyIfEx автоматически выравнивает стек на 8 байт.
Параметры:- Указатель на первый массив (источник).
- Указатель на второй массив (назначение).
- Указатель на пользовательскую функцию, которая определяет, должен ли элемент быть скопирован.
- Размер массива (количество элементов).
Возвращаемое значение:- CX: Количество скопированных элементов во втором массиве.
Состояние флагов:- Функция не изменяет состояние флагов.
Особенности:- Функция проходит по первому массиву и копирует элементы во второй массив, если они удовлетворяют условию, заданному пользовательской функцией.
- Пользовательская функция должна возвращать ZF=1, если элемент должен быть скопирован, и ZF=0, если нет.
- Функция не изменяет значения регистров, кроме CX.