Функция
WriteString выводит строку, завершающуюся нулём (\0) или 0, на экран. Она поддерживает управляющие последовательности, такие как.
- \t — горизонтальная табуляция,
- \b — backspace (возврат на один символ назад),
- \r — возврат каретки (переход в начало текущей строки),
- \n — переход на новую строку,
- \0 — символ завершения строки.
Параметры:- AX: Указатель на строку, завершающуюся нулём (\0) или 0.
Возвращаемое значение:- AL: ASCII-код введённого символа.
Состояние флагов:- Функция не изменяет состояние флагов.
Особенности:- Функция не изменяет значения регистров, кроме тех, которые используются для вывода строки.
- Управляющие последовательности обрабатываются для корректного форматирования вывода.
ПРИМЕР 1:
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string db "Привет, Мир Ассемблера!", 0
- data ends
- code segment public _____________; Начало сегмента кода
- ____assume _ds:data, cs:code
- ____include Handyfar.inc_________; Подключаем файл с функциями
- ____main proc ___________________; Начало процедуры main
- ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
- ________lea_____ax, ds:[string]__; Загружаем адрес переменной string в регистр ds:ax
- ________call____WriteString______; Вызываем процедуру WriteString(ax:string)
- ________xor_____al, al___________; Обнуляем регистр al
- ________call____ExitProcess______; Вызываем процедуру ExitProcess
- ____main endp ___________________; Конец процедуры main
- code ends _______________________; Конец сегмента кода
- end main ________________________; Конец файла. Точкой входа указывается процедура main
ПРИМЕР 2:
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string db "Привет, \nМир Ассемблера!\0"
- data ends
- code segment public _____________; Начало сегмента кода
- ____assume _ds:data, cs:code
- ____include Handyfar.inc_________; Подключаем файл с функциями
- ____main proc ___________________; Начало процедуры main
- ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
- ________lea_____ax, ds:[string]__; Загружаем адрес переменной string в регистр ds:ax
- ________call____WriteString______; Вызываем процедуру WriteString(ax:string)
- ________xor_____al, al___________; Обнуляем регистр al
- ________call____ExitProcess______; Вызываем процедуру ExitProcess
- ____main endp ___________________; Конец процедуры main
- code ends _______________________; Конец сегмента кода
- end main ________________________; Конец файла. Точкой входа указывается процедура main