Видеопамять компьютера любой конфигурации расположена в адресном пространстве оперативного запоминающего устройства (ОЗУ). Это позволяет напрямую адресовать видеопамять одним из косвенных способов адресации памяти. Видеопамять занимает адреса с A000h по BFFFh, что составляет 128 Кбайт. Для увеличения объёмов видеопамяти (до 64 Мбайт), она делиться на слои, так что по одному адресу находиться несколько ячеек, которые расположены в разных слоях. Обращение к видеопамяти зависит от видеорежима, который определяет количество точек по горизонтали и вертикали, а так же количество битов, отводимую для хранения кода цвета каждой точки. Графическими режимами управляет видеоадаптер.
Более простым для программирования, допускающим простой доступ к видеопамяти, является символьный режим, который мы и рассмотрим подробнее. Для работы в символьном режиме отводится 16 Кбайт памяти, начиная с адреса B800h. Экран делится на 80 столбцов и 25 строк. Общее количество знакомест 80 х 25= 2000. Для каждого знакоместа в видеопамяти отводится два байта: чётный байт – ASCII код символа, нечётный – байт атрибутов. Счёт строк и колонок идёт из верхнего левого угла экрана, в байте b800h:0000h хранится символ выводящийся в нулевой строке и нулевой колонке, в байте b800h:0001h хранится атрибут этого символа. В байте b800h:0002h хранится символ выводящийся в нулевой строке и первой колонке, в байте b800h:0002h хранится атрибут этого символа и т.д.
Байт атрибутов имеет следующую структуру:
Фон
Символ
Атрибут
BL
R
G
B
I
R
G
B
Номер бита
BL
–
признак мерцания;
R
–
красный цвет;
G
–
зелёный цвет;
B
–
синий цвет;
I
–
Интенсивность свечения.
Для доступа к видеопамяти в текстовом режиме можно использовать непосредственно один из сегментных регистров, например, ES:
mov ax, 0b800h ; записать в регистр
mov es, ax ; es адрес начала видеопамяти
xor bx, bx ; смещение символа от начала видеопамяти
mov dh, 00010100b ; атрибуты: на голубом фоне красный символ
mov dl, 65h ; ASCII код символа
mov word ptr es:[bx], dx ; запись в видеопамять символа и атрибута
inc bx ; смещение для
inc bx ; следующего символа
Другой способ доступа – размещение сегмента данных фиксировано, в области видеопамяти директивой AT.