Сборник по задачам и примерам Assembler

Чтение символа и его атрибута из видеопамяти (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, которая выводит символ в режиме телетайпа, предполагающем автоматическую корректировку текущей позиции курсора после вывода символа.



Содержание раздела