Функция обеспечивает запись символа на экран в режиме телетайпа: символ отображается в текущей позиции курсора, после чего курсор сдвигется вправо на одну позицию. При необходимости курсор автоматически перемещается на новую строку, а когда весь экран заполняется, происходит вертикальная свертка экрана. В последнем случае верхняя строка экрана исчезает, а снизу возникает новая пустая строка и курсор помещается в ее начало.
Данная функция обрабатывает следующие управляющие символы: звуковой сигнал (BELL), возврат курсора назад на одну позицию (BACKSPACE), возврат каретки (CARRIAGE RETURN) и перевод строки (LINEFEED).
В текстовых режимах символы отображаются с атрибутами, использованными ранее. В графических режимах есть возможность задать цвет отображаемого символа.
Ниже приведен формат вызова функции: На входе: AH = 0Eh - запись символа в режиме телетайпа; AL = ASCII-код записываемого символа; BH = номер страницы видеопамяти (только в текстовых режимах)?; BL = цвет символа (в графических режимах). На выходе: Не используются.
Приведем текст процедуры WriteStringT, которая выводит на экран строку, имеющую смещение si в сегменте ds, при помощи функции 0Eh прерывания INT 10h:
WriteStringT PROC
; определяем текущую активную страницу экрана
mov ah,0Fh int 10h ; номер активной страницы в регистре bh
; в цикле выводим на экран символы строки
next_char:
mov ah,0Eh lodsb ; получаем следующий символ строки cmp al,0 ; находим конец строки je exit_proc ; если конец строки достигнут, то оканчиваем процедуру int 10h
jmp next_char
exit_proc:
ret