shr сx, 01 | уменьшаем количество точек в два раза |
jnc @F | -> обход следующей команды (stosb) |
stosb | запись дополнительной точки |
@@: shr ex, 01 | уменьшаем количество точек в два раза |
jnc @F | -> обход следующей команды (stosw) |
stosw | запись двух дополнительных точек |
@@: rep stosd | основной цикл записи по четыре байта |
Важно
При использовании ускоренных вариантов рисования код цвета точки надо записать в оба байта регистра ах или в четыре байта регистра еах.
Таким образом, процесс рисования горизонтальной прямой можно дополнительно ускорить примерно в два или четыре раза, но при этом текст примера 3.8 увеличится на б или 12 команд. Поэтому в каждом конкретном случае вам придется решать, что важнее, размер подпрограммы или время рисования.
Советуем вам составить вариант примера 3.8 для ускоренного рисования горизонтальной прямой в обратном направлении. Все, что надо при этом учесть, уже описано в данной главе.
Замечание 1
Замечание 1
Описанные подпрограммы рисуют одноцветные линии. Разноцветная линия — это уже рисунок. Для того чтобы ее точки (или группы точек) имели разные цвета, недостаточно простого изменения их кодов в процессе рисования. Должна быть подготовлена и установлена палитра цветов, соответствующих кодам точек. Обо всем этом речь пойдет в третьем разделе данной главы и в главе 4.