Вывод на экран средствами BIOS

Все функции видеосервиса BIOS вызываются через прерывание 10H.

По умолчанию принимается, что экран работает в текстовом режиме и имеет 25 строк (номера от 0 до 24) и 80 столбцов (номера от 0 до 79). Левый верхний угол экрана имеет координаты (00,00) (или 00H,00H), а правый нижний угол (24,79) (или 18H,4FH).

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

Таблица 12.1. Назначение битов атрибута символа

Номер бита Назначение
Мигающий символ
6…4 Цвет фона
Символ яркого цвета
2…0 Цвет символа
Значение битов Для обычного символа Для яркого символа
000B черный темно-серый
001B синий светло-синий
010B зеленый светло-зеленый
011B голубой светло-голубой
100B красный светло-красный
101B пурпурный светло-пурпурный
110B коричневый желтый
111B светло-серый белый

 

Основные функции данного прерывания приведены в табл.12.2.

Таблица 12.2. Функции прерывания INT 10H

Назначение и номер функции Значения остальных регистров при вызове Значения регистров при возврате
Установка позиции курсора Эта функция устанавливает курсор в любую позицию на экране в соответствии с координатами строки и столбца. AH = 02H BH – номер страницы (от 0 до 3, обычно 0) DH – номер строки DL – номер столбца
Чтение текущего положения курсора Функция определяет положение курсора на экране (строку и столбец), а также размер курсора. AH = 03H BH – номер страницы (от 0 до 3, обычно 0)   DH – номер строки DL – номер столбца CH – начальная строка курсора CL – конечная строка курсора

 

 

Продолжение табл. 12.2

Прокрутка экрана вверх Функция очищает экран, заполняя его пробелами (вдвигает пустые строки снизу). AH = 06H AL – число пустых строк, вдвигаемых снизу (0 – очистить все окно) BH – атрибут символов для пустых строк (цвет символа и фона, мигание и т.д.) CH – строка верхнего левого угла (Y –координата) CL – столбец верхнего левого угла (Х –координата) DH – строка нижнего правого угла (Y –координата) DL – столбец нижнего правого угла (Х –координата)
Прокрутка экрана вниз Функция очищает экран, заполняя его пробелами (вдвигает пустые строки сверху). AH = 07H AL – число пустых строк, вдвигаемых сверху (0 – очистить все окно) BH – атрибут символов для пустых строк (цвет символа и фона, мигание и т.д.) CH – строка верхнего левого угла (Y –координата) CL – столбец верхнего левого угла (Х –координата) DH – строка нижнего правого угла (Y –координата) DL – столбец нижнего правого угла (Х –координата)
Чтение символа и атрибута в позиции курсора AH = 08H BH – номер страницы (от 0 до 3, обычно 0) AL – ASCII код символа AH – атрибут символа

 

Окончание табл. 12.2

Запись символа и атрибута в позицию курсора. Можно выводить несколько символов, задавая число повторений. Однако курсор при этом не перемещается. AH = 09H BH – номер страницы (от 0 до 3, обычно 0) AL – ASCII код символа BL – атрибут символа CX – коэффициент повторения
Запись символа в позицию курсора Можно выводить несколько символов, задавая число повторений. Однако курсор при этом не перемещается. AH = 0AH BH – номер страницы (от 0 до 3, обычно 0) AL – ASCII код символа CX – коэффициент повторения
Запись символа в режиме телетайпа Запись символа со смещением курсора в следующую позицию. AH = 0EH AL – ASCII код символа BH – номер страницы (от 0 до 3, обычно 0)

Особенно отметим, что функции прерывания INT 10H позволяют вывести текст в любую позицию экрана и позволяют изменить цвет текста.