Цветной графический адаптер имеет два режима отображения, в которых можно управлять отдельными точками экрана. Эти режимы называются режимами Полной Адресации точек (APA: All Points Addressable), поскольку с помощью этих режимов можно адресовать и изменять все точки. В действительности цветная плата допускает более двух режимов APA, но мы рассмотрим только те два, которые поддерживаются системой программирования. Используя информацию из технического описания, вы можете попробовать и другие режимы.
7 6 5 4 3 2 1 0
ЪДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДї
і і і і і
і точка 0 і точка 1 і точка 2 і точка 3 і
і і і і і і і і і
АДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДЩ
Фиг. 8.13 Битовая структура для графики 320*200
В программе регистр DI используется в качестве указателя нужного байта в буфере дисплея. В целом программа выводит 200 точек. В регистр BL загружается число 50, так как внутренний цикл пишет по четыре точки за одну итерацию. В регистр CL заносится 2 - значение счетчика переключений. Цикл заносит в регистр AL код 0C0H, что устанавливает старшие два бита на цвет 3; остальные три точки байта имеют цвет 0, т.е. цвет фона. После записи этого байта регистр AL сдвигается вправо на 2 бита, и теперь активизируется вторая точка байта. Прибавление значения 2000H к содержимому регистра DI смещает указатель на нечетную строку. Третья точка снова получается сдвигом регистра AL и вычитанием числа (2000H - 80) из содержимого регистра DI. Это возвращает регистр DI назад в четную строку, но уже на следующие 80 байт. Наконец, после записи четвертого байта, регистр DI снова возвращается в четное поле, но еще и увеличивается, смещаясь тем самым на следующий байт строки растра. В примере цикл работает с четырьмя байтами, так как на каждый байт приходится четыре элемента.