Вывод на экран средствами 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 | Цвет символа
|
Основные функции данного прерывания приведены в табл.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 позволяют вывести текст в любую позицию экрана и позволяют изменить цвет текста.