ХАНДЫФАР

Функция FindCharEx выполняет поиск символа в строке, завершающейся нулём (\0) или 0. Если символ найден, возвращается указатель на его первое вхождение. Если символ не найден или указатель на строку равен 0, функция возвращает FFFF и устанавливает флаг CF = 1.

Функция FindCharEx выравнивает стек на 4 байта а сохраняет указатель на первый найденный символ в строке на вершине стека и в регистре AX. Это сделано для того чтобы иметь возможность вызвать функцию WriteString или WriteStringEx сразу после вызова функции FindCharEx. Если после вызова функции FindCharEx для вывода строки используется функция WriteString то, выравнивание стека лежит на программисте. Для того чтобы выровнять стек на 2 байта, после вызова функции WriteString нужно написать следующую команду: add sp, 2.

Параметры:

  1. Указатель на строку, завершающуюся нулём (\0) или 0.
  2. Символ для поиска.

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

  • Если символ найден:

____AX: Указатель на первое вхождение символа в строке.
____CF = 0.

  • Если символ не найден:

____AX = 8000h.
____CF = 1.

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

  • Функция влияет на флаги CF.

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

  • Поиск завершается при достижении конца строки (\0) или 0.

  • Если символ не найден или указатель на строку = 0, функция возвращает 8000h и устанавливает флаг CF = 1.

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