Программирование
Добавить в закладки К обложке
- 1. Системы программирования - Страница 1
- 2. Классификация языков программирования высокого уровня - Страница 2
- 3. Переменные Visual Basic - Страница 3
- 4. Типы переменных - Страница 4
- 5. Целочисленные, переменного типа и переменные данных - Страница 5
- 6. Объявление переменных: оператор Dim для различных типов данных - Страница 6
- 7. Изменение значений по умолчанию для типов, область видимости - Страница 7
- 8. Используемые символы языка СИ - Страница 8
- 9. Константы языка СИ - Страница 9
- 10. Примеры использования констант языка СИ - Страница 10
- 11. Идентификатор. Ключевые слова - Страница 11
- 12. Комментарии. Исходные файлы - Страница 12
- 13. Область видимости - Страница 13
- 14. Объявление переменной на внутреннем уровне с классом памяти static - Страница 14
- 15. Объявление переменной, которая служит именем внешнего массива - Страница 15
- 16. Методы доступа к элементам массивов - Страница 16
- 17. Директивы препроцессора - Страница 17
- 18. Применение директив - Страница 18
- 19. Рекурсия - Страница 19
- 20. Знакомство с языком СИ++ - Страница 20
- 21. Комментарии в СИ++ - Страница 21
- 22. Соотношение между основными типами данных в СИ++ - Страница 22
- 23. Операции языка СИ++ - Страница 23
- 24. Оператор выражение. Пустой оператор - Страница 24
- 25. Оператор switch, break. Копирование строки - Страница 25
- 26. Описание функций - Страница 26
- 27. Исходные файлы С++ - Страница 27
- 28. Описание - Страница 28
- 29. Описание и скрытие имен - Страница 29
- 30. Имена переменных - Страница 30
- 31. Разыменование - Страница 31
- 32. Ссылка - Страница 32
- 33. Выражения и операторы - Страница 33
- 34. Функции и файлы - Страница 34
- 35. Классы - Страница 35
- 36. Перегрузка операций - Страница 36
- 37. Производные классы - Страница 37
- 38. Потоки - Страница 38
- 39. Инспектор объектов для языка Дельфи - Страница 39
- 40. Окно редактора кода Дельфи - Страница 40
- 41. Сообщения Дельфи - Страница 41
- 42. Оптимизация по быстродействию в Ассемблер - Страница 42
- 43. Оптимизация по размеру в Ассемблер - Страница 43
- 44. Достоинства и недостатки оптимизации - Страница 44
- 45. Отказ от универсальности - Страница 45
- 46. Оптимизация переходов и вызовов подпрограмм - Страница 46
- 47. Оптимизация циклов - Страница 47
- 48. Управляющие таблицы - Страница 48
- 49. Оптимизация для конкретных моделей процессоров - Страница 49
- 50. Органы управления (controls) Active X - Страница 50
- 51. Синтаксис Active X - Страница 51
- 52. Практикум Active X - Страница 52
- 53. Сценарии и документы - Страница 53
- 54. Netscape Navigator - Страница 54
- 55. Понятие системы VВА - Страница 55
- 56. Язык программирования VВА - Страница 56
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).