ХАНДЫФАР

Функция WriteStringExD выводит строку, завершающуюся (\0) или 0, на экран с указанными атрибутами цвета фона и текста используя спецификатор ${}. Функция WriteStringExD автоматически выравнивает стек на 6 байт.

Функция поддерживает управляющие последовательности, такие как:

  • \t — горизонтальная табуляция, равняется 4 пробелам,
  • \b — возврат на один символ назад,
  • \r — возврат каретки (переход в начало текущей строки),
  • \n — переход на новую строку,
  • \0 — символ завершения строки.

Параметры:

  1. Указатель на строку, завершающуюся (\0) или 0.
  2. Цвет фона текста.
  3. Цвет текста.

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

  • AX: Количество фактически напечатаных символов. Управляющие последовательности кроме \b считаются как один символ. \b уменьшает количество напечатанных символов на 1.

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

  • Функция влияет на все флаги процессора.

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

  • Функция не изменяет значения регистров, кроме AX.
  • Управляющие последовательности обрабатываются для корректного форматирования вывода.
  • Пустые ${} фигурные скобки ни на что не влияют.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "Меня зовут ${Д}овгополов "
  7. ___________db "${Евгений} Сер${гее}"
  8. ___________db "вич!\0"
  9. data ends
  10. code segment public
  11. ____assume _ds:data, cs:code
  12. ____include Handyfar.inc
  13. ____include Handymac.inc
  14. ____main proc
  15. ________call____SetDataSegment
  16. ________push____BLACK
  17. ________push____CYAN
  18. ________pushs___ds:[string]
  19. ________call____WriteStringExD
  20. ________push____0
  21. ________call____ExitProcessEx
  22. ____main endp
  23. code ends
  24. end main
Функция WriteStringExD выводит строку, завершающуюся (\0) или 0, на экран с указанными атрибутами цвета фона и текста используя спецификатор ${}. Функция WriteStringExD автоматически выравнивает стек на 6 байт.

Функция поддерживает управляющие последовательности, такие как:

  • \t — горизонтальная табуляция, равняется 4 пробелам,
  • \b — возврат на один символ назад,
  • \r — возврат каретки (переход в начало текущей строки),
  • \n — переход на новую строку,
  • \0 — символ завершения строки.

Параметры:

  1. Указатель на строку, завершающуюся (\0) или 0.
  2. Цвет фона текста.
  3. Цвет текста.

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

  • AX: Количество фактически напечатаных символов. Управляющие последовательности кроме \b считаются как один символ. \b уменьшает количество напечатанных символов на 1.

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

  • Функция влияет на все флаги процессора.

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

  • Функция не изменяет значения регистров, кроме AX.
  • Управляющие последовательности обрабатываются для корректного форматирования вывода.
  • Пустые ${} фигурные скобки ни на что не влияют.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "Меня зовут ${Д}овгополов ${Евгений} Сер${гее}вич!\0"
  7. data ends
  8. code segment public
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc________; Подключаем файл с функциями
  11. ____include Handymac.inc________; Подключаем файл с макросами
  12. ____main proc
  13. ________call____SetDataSegment__; Вызываем процедуру SetDataSegment
  14. ________push____BLACK___________; Ложим на вершину стека значение цвета символа
  15. ________push____CYAN____________; Ложим на вершину стека значение цвета фона
  16. ________pushs___ds:[string]_____; Ложим на вершину стека адрес переменной string
  17. ________call____WriteStringExD__; Вызываем процедуру WriteStringExD(string, CYAN, BLACK)
  18. ________push____0_______________; Ложим на вершину стека байтовое значение кода возврата
  19. ________call____ExitProcessEx___; Вызываем процедуру ExitProcess(0)
  20. ____main endp
  21. code ends
  22. end main
Made on
Tilda