Функция
StringReplaceCharEx заменяет все вхождения указанного символа в строке, завершающейся (\0) или 0, на другой символ.
Функция
StringReplaceCharEx автоматически выравнивает стек на 4 байтa и на вершине стека оставляет адрес на изменённую стоку и в регистре AX. Это сделано для того чтобы иметь возможность вызвать функцию
WriteString или
WriteStringEx сразу после вызова функции
StringReplaceCharEx. Если после вызова функции
StringReplaceCharEx для вывода преобразованного символа используется функция
WriteString то, выравнивание стека лежит на программисте. Для того чтобы выровнять стек на 2 байта, после вызова функции
WriteString нужно написать следующую команду: add sp, 2.
Параметры:- Указатель на строку, завершающуюся (\0) или 0.
- Символ, который нужно заменить.
- Символ, на который нужно заменить.
Возвращаемое значение:- DS:AX: Указатель на изменённую строку.
Состояние флагов:- Функция не изменяет состояние флагов.
Особенности:- Функция не изменяет значения регистров. кроме AX.
- title Автор: Довгополов Евгений Сергеевич
- .286C
- .model small
- .stack 100h
- data segment public
- ____string db "Изучать язык ассемблера - "
- ___________db "это весело!\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handymac.inc
- ____main proc
- ________call____SetDataSegment
- ________push____'_'
- ________push____' '
- ________pushs___ds:[string]
- ________call____StringReplaceCharEx
- ________call____WriteStringEx
- ________push____0
- ________call____ExitProcessEx
- ____main endp
- code ends
- end main