Программирование (Козлова) - страница 40

49. Оптимизация для конкретных моделей процессоров

Если некоторая программа будет работать на компьютерах со строго определенными моделями процессоров, можно попытаться применить ориентированные на определенные модели процессоров команды.

Многие из новых команд дают возможность повысить производительность программы.

1. Линейные и циклические сдвиги с аргументом, не равным единице.

2. Команда PUSH с непосредственным операндом.

3. Команды ввода и вывода символьных строк.

4. Команды обмена со стеком тем, что содержится во всех регистрах PUSHA и POPA.

5. Команды ENTER и LEAVE для выделения и освобождения кадра стека.

6. Команды контроля соблюдения границ массива BOUND.

7. Команды умножения числа на непосредственный операнд.

Можно увеличить производительность на несколько процентов за счет малого объема памяти.

При составлении программ для процессоров 80386 и 80486 и их разновидностей можно повысить производительность 16-разрядной программы, используя все вышеупомянутые команды для процессоров 80188, 80188 и 80286 и при этом выравнивая данные и адреса передачи управления по границам 32-разрядных слов, применить следующие дополнительные особенности.

1. 32-разрядные регистры (но применять их следует с осторожностью, так как их содержимое не сохраняется, если работают некоторые эмуляторы системы DOS, например модуль совместимости с DOS системы OS/2 версий до 1.3).

2. Команды пересылки с распространением нуля или знакового бита (MOVZX или MOVSX).

3. 64-разрядные сдвиги (в сдвоенных регистрах) – команды SHLD и SHRD.

4. Установка в байте параметров «истина» или «ложь» по содержимому флажков центрального процессора, что дает возможность избавиться от команд условного перехода (SETZ, SETC и т. д.).

5. Команды проверки, установки, сброса, инвертирования и просмотра битов (BT, BTC, BTR, BTS, BSF

и BSR).

6. Обобщенная индексная адресация и режимы адресации с масштабированием индексов.

7. Быстрое умножение с помощью команды LEA с применением масштабированной индексной адресации.

8. «Дальние» условных переходов.

9. Перемножение 32-разрядных чисел и деление 64-разрядных чисел на 32-разрядные.

10. Дополнительные сегментные регистры (FS и GS).

11. Команды загрузки сегментных регистров SS,

FS и GS (LSS, LFS и LGS).

50. Органы управления (controls) Active X

Орган управления является небольшой программой, которой броузер выделяет на странице некоторый участок прямоугольной формы. Внутри своего участка орган управления несет ответственность за перерисовку экрана и взаимодействие с пользователем. К примеру, орган управления способен реализовать что-нибудь вроде движка прокрутки или выпадающего меню, которых сам HTML построить не может; другие модули способны принимать от пользователя, обрабатывать и выводить данные, создавая динамически меняющиеся диаграммы или даже ведя некоторую электронную таблицу прямо в окне броузера; наконец, органы управления еще одного типа выполняют чисто оформительские функции – например, покрывают выделенный им участок узором, плавным переходом цветов, перемещающимся текстом или изображением.