Вывод символов на экран (INT 10h)
Каждый символ на экране описывается двумя байтами — ASCII-кодом символа и байтом атрибута, указывающим цвет символа и фона, а также является ли символ мигающим.
Атрибут символа:
Бит 7: символ мигает (по умолчанию) или фон яркого цвета (если его действие было переопределено видеофункцией 10h).
Биты 6 – 4: цвет фона.
Бит 3: символ яркого цвета (по умолчанию) или фон мигает (если его действие было переопределено видеофункцией 11h).
Биты 2 – 0: цвет символа.
Цвета кодируются в битах, как показано в таблице .
| Обычный цвет
| Яркий цвет
| 000b
| черный
| темно-серый
| 001b
| синий
| светло-синий
| 010b
| зеленый
| светло-зеленый
| 011b
| голубой
| светло-голубой
| 100b
| красный
| светло-красный
| 101b
| пурпурный
| светло-пурпурный
| 110b
| коричневый
| желтый
| 111b
| светло-серый
| белый
|
|
08h
| Считать символ и атрибут символа в текущей позиции курсора
| АН = 08
ВН = номер страницы
| АН = атрибут символа
AL = ASCII-код символа
|
|
09h
| Вывести символ с заданным атрибутом на экран
| АН = 09
ВН = номер страницы
AL = ASCII-код символа
BL = атрибут символа
СХ = число повторений символа
| –
| С помощью этой функции можно вывести на экран любой символ, включая даже символы CR и LF, которые обычно интерпретируются как конец строки. В графических режимах СХ не должен превышать число позиций, оставшееся до правого края экрана
|
0Ah
| Вывести символ с текущим атрибутом на экран
| АН = 0Ah
ВН = номер страницы
AL = ASCII-код символа
СХ = число повторений символа
| –
| Эта функция также выводит любой символ на экран, но в качестве атрибута символа используется атрибут, который имел символ, находившийся ранее в этой позиции.
|
0Eh
| Вывести символ в режиме телетайпа
| АН = 0Eh
ВН = номер страницы
AL = ASCII-код символа
| –
| Символы CR (0Dh), LF (0Ah), BEL (7) интерпретируются как управляющие символы. Если текст при записи выходит за пределы нижней строки, экран прокручивается вверх. В качестве атрибута используется атрибут символа, находившегося в этой позиции.
|
13h
| Вывести строку символов с заданными атрибутами
| АН = 13h
AL = режим вывода:
бит 0 — переместить курсор в конец строки после вывода
бит 1 — строка содержит не только символы, но также и атрибуты, так что каждый символ описывается двумя байтами: ASCII-код и атрибут
биты 2 – 7 зарезервированы
СХ = длина строки (только число символов)
BL = атрибут, если строка содержит только символы
DH,DL = строка и столбец, начиная с которых будет выводиться строки
ES:BP = адрес начала строки в памяти
| –
| Функция 13h выводит на экран строку символов, интерпретируя управляющие символы CR (0Dh), LF (0Ah), BS (08) и BEL (07). Если строка подготовлена в формате <символ,атрибут> — гораздо быстрее просто скопировать ее в видеопамять,
Так как функция 09 выводит символ в позиции курсора, но не перемещает сам курсор, это приходится делать каждый раз специально
|
Функции BIOS удобны для переключения и настройки видеорежимов, но часто оказывается, что вывод текста на экран гораздо быстрее и проще выполнять просто копированием изображения в видеопамять.