Графические устройства

         

А 14 Вывод строки формата 1 бита на точку (2 цвета)



Пример А.14. Вывод строки формата 1 бита на точку (2 цвета)

mode 2 : lods byte ptr fs: [si] al = код очередных восьми точек
mov ah, 80h ah = константа для выделения разряда
md 21: push ax сохраняем содержимое ах
and al, ah выделяем текущий разряд
je md_22 если нуль, то обходим одну команду
mov al, 01 иначе записываем в al единицу
md 22: call outpnt обращение к подпрограмме записи
pop ax восстанавливаем содержимое ах
dec ex сх = сх — 1, счетчик точек в строке
je md_23 -> все точки выведены
shr ah, 01 изменяем константу выделения
jne md_21 -> если обработаны не все точки
jmp short mode 2 -> если обработано 8 точек
md 23: ret возврат из подпрограммы

Сравните текст примера А. 14 с текстом подпрограммы drwiinl (см. пример 3.18).

Замечание 1
Замечание 1

Напомним, что дополнительная коррекция и проверка значения счетчика повторов цикла (сх) нужна потому, что в зависимости от количества точек в строке последний байт может быть заполнен частично.

Подпрограммы записи кодов точек существенно зависят от видеорежима. Если задача установила один из видеорежимов PPG, то в самом простом случае выполняются действия, показанные в примере А. 15.



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