Функция
WriteStringExD выводит строку, завершающуюся (\0) или 0, на экран с указанными атрибутами цвета фона и текста используя спецификатор
${}. Функция
WriteStringExD автоматически выравнивает стек на 6 байт.
Функция поддерживает управляющие последовательности, такие как:
- \t — горизонтальная табуляция, равняется 4 пробелам,
- \b — возврат на один символ назад,
- \r — возврат каретки (переход в начало текущей строки),
- \n — переход на новую строку,
- \0 — символ завершения строки.
Параметры:- Указатель на строку, завершающуюся (\0) или 0.
- Цвет фона текста.
- Цвет текста.
Возвращаемое значение:- AX: Количество фактически напечатаных символов. Управляющие последовательности кроме \b считаются как один символ. \b уменьшает количество напечатанных символов на 1.
Состояние флагов:- Функция влияет на все флаги процессора.
Особенности:- Функция не изменяет значения регистров, кроме AX.
- Управляющие последовательности обрабатываются для корректного форматирования вывода.
- Пустые ${} фигурные скобки ни на что не влияют.
- title Автор: Довгополов Евгений Сергеевич
- .286C
- .model small
- .stack 100h
- data segment public
- ____string db "Меня зовут ${Д}овгополов "
- ___________db "${Евгений} Сер${гее}"
- ___________db "вич!\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handymac.inc
- ____main proc
- ________call____SetDataSegment
- ________push____BLACK
- ________push____CYAN
- ________pushs___ds:[string]
- ________call____WriteStringExD
- ________push____0
- ________call____ExitProcessEx
- ____main endp
- code ends
- end main