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

         

Замена команды rep stosb на rep stosd



Пример 3.10. Замена команды rep stosb на rep stosd



shr сx, 01 уменьшаем количество точек в два раза
jnc @F -> обход следующей команды (stosb)
stosb запись дополнительной точки
@@: shr ex, 01 уменьшаем количество точек в два раза
jnc @F -> обход следующей команды (stosw)
stosw запись двух дополнительных точек
@@: rep stosd основной цикл записи по четыре байта

Важно
При использовании ускоренных вариантов рисования код цвета точки надо записать в оба байта регистра ах или в четыре байта регистра еах.

Таким образом, процесс рисования горизонтальной прямой можно дополнительно ускорить примерно в два или четыре раза, но при этом текст примера 3.8 увеличится на б или 12 команд. Поэтому в каждом конкретном случае вам придется решать, что важнее, размер подпрограммы или время рисования.

Советуем вам составить вариант примера 3.8 для ускоренного рисования горизонтальной прямой в обратном направлении. Все, что надо при этом учесть, уже описано в данной главе.

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

Описанные подпрограммы рисуют одноцветные линии. Разноцветная линия — это уже рисунок. Для того чтобы ее точки (или группы точек) имели разные цвета, недостаточно простого изменения их кодов в процессе рисования. Должна быть подготовлена и установлена палитра цветов, соответствующих кодам точек. Обо всем этом речь пойдет в третьем разделе данной главы и в главе 4.



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