Ответы на билеты / Билет_07_
.docВывод информации на экран.
Существует четыре способа вывода информации на экран. Для этих целей можно использовать: прерывания DOS, BIOS, прямой вывод в видео буффер, вывод через соответствующие порты. Рассмотрим первые три из них.
Прерывания DOS
Вывод текстовой информации средствами DOS (int 21h) - это вывод символа (функция 02h), вывод строки (функция 09h), кроме того, можно обращаться к экрану как к стандартному файлу вывода - stdout, при помощи соответствующих функций. Данные функции имеют следующий формат при вызове:
02h
вход
AH - 02h
DL - символ (либо его ASCII код)
выход
НЕТ ЗНАЧЕНИЙ
09h
вход
AH - 09h
DS:DX - смещение начала строки,
заканчивающейся символом '$'
Прерывания BIOS
Прерывания видео, обслуживаемые BIOS, обеспечивают доступ к видеоконтроллеру дисплея с помощью программного прерывания INT 10h. Оно поддерживает следующие типы функций:
1.инициализация дисплея в одном из нескольких форматов;
2.чтение из памяти экрана и запись в нее;
3.прокрутка окон.
Видеосистемы EGA/VGA
Данные видеосистемы представляют собой расширенную (по сравнению с CGA) видеосистему, обеспечивающую повышенное качество изображения. К EGA/VGA системам относят режимы с 0Dh до 13h. Для управления данными системами используется BIOS установленная ROM видеоадаптера. Подключение данных систем осуществляется на этапе запуска и тестирования CMOS. Драйвер EGA/VGA на этапе POST подключается на вектор прерывания, который вызывается по команде INT 10h, а вектор драйвера CGA/MONO перемещается и может быть вызван по команде INT 42h. Для совместимости с видеосистемами CGA/MONO, системы EGA/VGA используют одни и те же режимы отображения. Кроме того, они также реализуют дополнительные режимы, обусловленные расширенной способностью этих видеоподсистем.
Дополнительные функции
AH |
Действие |
Тип |
10h |
Установить регистры палитры |
EGA/VGA |
11h |
Служба знакогенератора |
EGA/VGA |
12h |
Альтернативный выбор |
EGA/VGA |
1Ah |
Читать/записать код дисплея |
VGA |
1Bh |
Читать состояние |
VGA |
1Ch |
Сохранить/Восстановить значение |
VGA |
Кроме того, необходимо отметить, что вышеописанные видеоподсистемы позволяют выполнять установку видеорежимов без очистки памяти видеобуффера. Для этих целей необходимо выполнить следующие инструкции:
mov al,номер_режима+80h
xor ah,ah
int 10h