Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_2.DOC
Скачиваний:
13
Добавлен:
02.05.2019
Размер:
689.66 Кб
Скачать

Вывод символов на экран

Каждый символ на экране описывается двумя байтами видеопамяти — ASCII-кодом символа и байтом атрибута, указывающим цвет символа и фона, а также является ли символ мигающим.

Атрибут символа:

бит 7: символ мигает (по умолчанию) или фон яркого цвета (если его действие было переопределено видеофункцией 10h);

биты 6-4: цвет фона (бит 6 — красная составляющая, 5 — зеленая, 4 — синяя);

бит 3: символ яркого цвета (по умолчанию) или фон мигает (если его действие было переопределено видеофункцией 11h);

биты 2-0: цвет символа (бит 2 — красная составляющая, 1 — зеленая, 0 — синяя);

Цвета кодируются в битах, как показано в таблице 18.

Таблица 1. Атрибуты символов

Обычный цвет

Яркий цвет

000b

черный

темно-серый

001b

синий

светло-синий

010b

зеленый

светло-зеленый

011b

голубой

светло-голубой

100b

красный

светло-красный

101b

пурпурный

светло-пурпурный

110b

коричневый

желтый

111b

светло-серый

белый

INT 10h, АН = 8 — Считать символ и атрибут символа в текущей позиции курсора

Ввод: АН = 8

ВН = номер видеостраницы

Вывод: АН = атрибут символа

AL = ASCII-код символа

INT 10h, АН = 9Вывести символ с заданным атрибутом на экран

Ввод: АН = 9

ВН = номер видеостраницы

AL = ASCII-код символа

BL = атрибут символа

СХ = число повторений символа

С помощью этой функции можно вывести на экран любой символ (или строку, содержащую одинаковые символы), в том числе символы CR и LF, которые обычно интерпретируются как конец строки. В регистре СХ задается количество экземпляров выводимого символа. В графических режимах значение СХ не должно превышать число позиций, оставшееся до правого края экрана. Функция не сдвигает курсор при выводе (то есть по окончании вывода положение курсора остается неизменным).

INT 10h, АН = 0AhВывести символ с текущим атрибутом на экран

Ввод: АН = 0Ah

ВН = номер видеостраницы

AL = ASCII-код символа

СХ = число повторений символа

Эта функция также выводит любой символ на экран, но в качестве атрибута символа используется атрибут, который имел символ, находившийся ранее в этой позиции.

INT 10h, АН = 0EhВывести символ в режиме телетайпа

Ввод: АН = 0Eh

ВН = номер видеостраницы

AL = ASCII-код символа

Символы CR (0Dh), LF (0Ah), BEL (7) интерпретируются как управляющие. Если текст при записи выходит за пределы нижней строки, экран прокручивается вверх. В качестве атрибута используется атрибут символа, находившегося в этой позиции.

INT 10h, АН = 13h — Вывести строку символов с заданными атрибутами

Ввод: АН = 13h

AL = режим вывода: бит 0 — переместить курсор в конец строки после вывода; бит 1 — строка содержит не только символы, но также и атрибуты, так что каждый символ описывается двумя байтами: ASCII-код и атрибут биты 2-7 зарезервированы

СХ = длина строки (только число символов)

BL = атрибут, если строка содержит только символы

DH, DL = строка и столбец, начиная с которых будет выводиться строка

ES:BP = адрес строки в памяти

Функция 13h выводит на экран строку символов, интерпретируя управляющие символы CR (0Dh), LF (0Ah), BS (08) и BEL (07).

Функции BIOS удобны для переключения и настройки видеорежимов, но часто оказывается, что вывод текста на экран гораздо быстрее и проще выполнять просто копированием изображения в видеопамять.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]