Функция
StringStartsWith проверяет, начинается ли первая строка с заданной второй подстроки.
Параметры:- DS:AX: Указатель на первую строку, завершающуюся (\0) или 0.
- ES:BX: Указатель на вторую строку (подстроку), завершающуюся (\0) или 0.
Возвращаемое значение:- ZF = 1: Если первая строка начинается с заданной подстроки.
- ZF = 0: Если первая строка не начинается с заданной подстроки.
Состояние флагов:- Функция влияет на все флаги.
Особенности:- Функция не изменяет значения регистров.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string____db "Евгений Довгополов\0"
- ____mName_____db "Евген\0"
- ____true_msg _db "Строка '%s' начинается "
- ______________db "с '%s'\0"
- ____false_msg db "Строка '%s' не "
- ______________db "начинается с '%s'\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____main proc
- ________call____SetDataSegment
- ________lea_____bx, es:[mName]
- ________lea_____ax, ds:[string]
- ________call____StringStartsWith
- ________jnz_____False
- ____True:
- ________lea_____ax, es:[mName]
- ________push____ax
- ________lea_____ax, ds:[string]
- ________push____ax
- ________lea_____ax, ds:[true_msg]
- ________jmp_____Done
- ____False:
- ________lea_____ax, es:[mName]
- ________push____ax
- ________lea_____ax, ds:[string]
- ________push____ax
- ________lea_____ax, ds:[false_msg]
- ____Done:
- ________call____PrintFormatString
- ________add_____sp, 4
- ________xor_____al, al
- ________call____ExitProcess
- ____main endp
- code ends
- end main