Функция
FindSubStringEx выполняет поиск подстроки в строке, завершающейся нулём (\0) или 0. Если подстрока найдена, возвращается указатель на её первое вхождение в строке. Если подстрока не найдена или один из указателей равен 0, функция возвращает 0 и устанавливает флаг CF = 1.
Функция
FindSubStringEx выравнивает стек на 4 байта а сохраняет указатель на первую подстроку в строке на вершине стека и в регистре AX. Это сделано для того чтобы иметь возможность вызвать функцию
WriteString или
WriteStringEx сразу после вызова функции
FindSubStringEx. Если после вызова функции
FindSubStringEx для вывода строки используется функция
WriteString то, выравнивание стека лежит на программисте. Для того чтобы выровнять стек на 2 байта, после вызова функции
WriteString нужно написать следующую команду: add sp, 2.
Параметры:- Указатель на строку, завершающуюся нулём (\0) или 0.
- Указатель на подстроку, завершающуюся нулём (\0).
Возвращаемое значение:____AX: Указатель на первое вхождение подстроки в строке.
____CF = 0.
- Если подстрока не найдена или один из указателей равен 0:
____AX = 8000h.
____CF = 1.
Состояние флагов:- Функция влияет на все флаги, включая CF, ZF, SF и другие.
Особенности:- Поиск завершается при достижении конца строки (\0) или 0.
- Если подстрока не найдена или один из указателей равен 0, функция возвращает 8000h и устанавливает CF = 1.
- Функция не изменяет значения регистров, кроме AX и флагов.