Ответы на билеты / Билет_19_
.docВЫВОД НА ЭКРАН: БАЗОВАЯ ВЕРСИЯ DOS
Вывод на экран в базовой версии DOS требует определения текстового
сообщения в области данных, установки в регистре AH значения 09 (вызов
функции DOS) и указания команды DOS INT 21H. В процессе выполнения
операции конец сообщения определяется по oграничителю ($), как это
показано ниже:
NAMPRMP DB 'Имя покупателя?','$'
.
.
MOV AH,09 ;Запрос вывода на экран
LEA DX,NAMPRMP ;Загрузка адреса сообщ.
INT 21H ;Вызов DOS
Знак ограничителя "$" можно кодировать непосредственно после cимвольной
строки (как показано в примере), внутри строки: 'Имя покупателя?$', или в
следующем операторе DB '$'. Используя данную операцию, нельзя вывести на
экран символ доллара "$". Кроме того, если знак доллара будет
отсутствовать в конце строки, то на экран будут выводиться все последующие
символы, пока знак "$" не встретиться в памяти.
Команда LEA загружает адрес области NAMPRMP в регистр DX для передачи
в DOS адреса выводимой информации. Адрес поля NAMPRMP, загружаемый в DX по
команде LEA, является oтносительным, поэтому для вычисления абсолютного
адреса данных DOS складывает значения регистров DS и DX (DS:DX).
BIOS
Прерывания видео, обслуживаемые BIOS, обеспечивают доступ к видеоконтроллеру дисплея с помощью программного прерывания INT 10h. Оно поддерживает следующие типы функций:
1.инициализация дисплея в одном из нескольких форматов;
2.чтение из памяти экрана и запись в нее;
3.прокрутка окон.
INT 10h, АН = 00 — Установить видеорежим
INT 10h, АН = 4Fh, AL = 02 — Установить SuperVGA-видеорежим
INT 10h, АН = 02 — Установить положение курсора
INT 10h, АН = 08 — Считать символ и атрибут символа в текущей позиции курсора
INT 10h, AH = 13h — Вывести строку символов с заданными атрибутами
Функции BIOS удобны для переключения и настройки видеорежимов, но часто оказывается, что вывод текста на экран гораздо быстрее и проще выполнять просто копированием изображения в видеопамять.