ХАНДЫФАР

Функция WriteString выводит строку, завершающуюся нулём (\0) или 0, на экран. Она поддерживает управляющие последовательности, такие как.

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

Параметры:

  • AX: Указатель на строку, завершающуюся нулём (\0) или 0.

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

  • AL: ASCII-код введённого символа.

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

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

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

  • Функция не изменяет значения регистров, кроме тех, которые используются для вывода строки.

  • Управляющие последовательности обрабатываются для корректного форматирования вывода.

ПРИМЕР 1:

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string db "Привет, Мир Ассемблера!", 0
  6. data ends
  7. code segment public _____________; Начало сегмента кода
  8. ____assume _ds:data, cs:code
  9. ____include Handyfar.inc_________; Подключаем файл с функциями
  10. ____main proc ___________________; Начало процедуры main
  11. ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
  12. ________lea_____ax, ds:[string]__; Загружаем адрес переменной string в регистр ds:ax
  13. ________call____WriteString______; Вызываем процедуру WriteString(ax:string)
  14. ________xor_____al, al___________; Обнуляем регистр al
  15. ________call____ExitProcess______; Вызываем процедуру ExitProcess
  16. ____main endp ___________________; Конец процедуры main
  17. code ends _______________________; Конец сегмента кода
  18. end main ________________________; Конец файла. Точкой входа указывается процедура main

ПРИМЕР 2:

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string db "Привет, \nМир Ассемблера!\0"
  6. data ends
  7. code segment public _____________; Начало сегмента кода
  8. ____assume _ds:data, cs:code
  9. ____include Handyfar.inc_________; Подключаем файл с функциями
  10. ____main proc ___________________; Начало процедуры main
  11. ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
  12. ________lea_____ax, ds:[string]__; Загружаем адрес переменной string в регистр ds:ax
  13. ________call____WriteString______; Вызываем процедуру WriteString(ax:string)
  14. ________xor_____al, al___________; Обнуляем регистр al
  15. ________call____ExitProcess______; Вызываем процедуру ExitProcess
  16. ____main endp ___________________; Конец процедуры main
  17. code ends _______________________; Конец сегмента кода
  18. end main ________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda