Чтение символа и его атрибута из видеопамяти (08h int 10h)
Чтение символа и его атрибута из видеопамяти (08h int 10h)
В памяти видеоадаптера каждый символ представлен двумя байтами, содержащими ASCII-код символа и его байт-атрибут. Функция 08h BIOS позволяет прочитать код символа и его атрибут непосредственно из видеопамяти.
Вход: АН = 08h — чтение символа и его атрибута в текущей позиции курсора;
ВН = номер видеостраницы. Выход: AL = ASCII-код символа; АН = байт-атрибут.
Ниже приведена программа, которая устанавливает курсор в заданную позицию.
:prg05_04.asm. устанавливающая курсор в заданную позицию.
.code main:
xorbh.bh
mov dh.10
movdl.10
movah.02h
int 10h установили позицию курсора (10.10) записываем символ и атрибут в видеопамять
moval. "a"
mov bl,10001100b :атрибут - ярко-красный мигающий
movcx.5 ;повторить 5 раз
movah.09h
int 10h :прочитаем символ из текущей позиции видеопамяти:
mov ah,08h
int 10h : выясним текущую позицию курсора
хог bh.bh
mov ап.ОЗn
kint 10h установили позицию курсора (10.10)
:все результаты смотрим в отладчике
Важно отметить, что текущая позиция курсора после выполнения функций 08п и 09п осталась неизменной. Отсюда следует важный вывод о том, что при использовании этих функций необходимо также заботиться и о движении курсора функцией 02h. BIOS предоставляет функцию 0Eh, которая выводит символ в режиме телетайпа, предполагающем автоматическую корректировку текущей позиции курсора после вывода символа.