ХАНДЫФАР

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

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

Параметры:

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

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

  • Если подстрока найдена:

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

  • Если подстрока не найдена или один из указателей равен 0:

____AX = 8000h.
____CF = 1.

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

  • Функция влияет на все флаги, включая CF, ZF, SF и другие.

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

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

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

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