42. Оптимизация по быстродействию в Ассемблер

42. Оптимизация по быстродействию в Ассемблер

Приведем некоторые из самых общих процедур этой категории.

1. Замена универсальных инструкций учитывающими конкретную ситуацию, например замена команды умножения на степень двойки на команды сдвига.

Уменьшение числа передач в программе: вследствие преобразования подпрограмм в макрокоманды для прямого включения в исполнимый код; за счет преобразования условных переходов, так, чтобы условие перехода было истинным относительно реже, чем причины для его отсутствия; перемещение условий общего характера к началу разветвленной последовательности переходов; изменение вызовов, сразу после чего происходит возврат в программу, в переходы и т. д.

2. Оптимизация циклов, в том числе сдвиг вычислений неизменяющихся величин за границы циклов, разворачивание циклов и «соединение» отдельных циклов, выполняемых одно и то же количество раз, в единый цикл («сжатие цикла»).

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

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

В процессорах 80 x 86, но не 80 x 88, возможно, удастся повысить скорость действия программы на несколько процентов в результате выравнивания расположения данных и меток, на которые осуществляется передача управления, относительно определенных границ.

Процессоры 8088 и 80188 имеют 8-разрядную шину, и для них не имеет значения, на какую границу выровнены данные, поэтому выравнивание можно не применять или установить на границу байта (1 байт, 8 бит); процессоры 8086, 80186 и 80286 обладают 16-разрядной шиной, и им проще действовать с данными, выровненными на границу слова (2 байта, 16 бит); процессор 80386, для которого свойственна 32-разрядная шина, использует выравнивание на границу двойного слова (4 байта, 32 бита); из-за особенностей своей внутренней кэш-памяти процессору 80486, тоже с 32-разрядной шиной, проще работать, если осуществляется выравнивание на границу параграфа (16 байт, 96 бит).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Оптимизация QueryInterface

Из книги Сущность технологии СОМ. Библиотека программиста автора Бокс Дональд

Оптимизация QueryInterface Фактически реализация QueryInterface, показанная ранее в этой главе, очень проста и легко может поддерживаться любым программистом, имеющим хоть некоторое представление о СОМ и C++. Тем не менее, многие среды и каркасы приложений поддерживают реализацию,


ЛЕКЦИЯ № 14. Ассемблер

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

ЛЕКЦИЯ № 14. Ассемблер 1. Об ассемблере Когда-то ассемблер был языком, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Постепенно ситуация менялась. Появлялись более удобные средства общения с компьютером. Но в отличие от других языков


43. Оптимизация по размеру в Ассемблер

Из книги Программирование автора Козлова Ирина Сергеевна

43. Оптимизация по размеру в Ассемблер Если работоспособность некоторой программы ограничена ее размером, а не скоростью реализации, то следует применить стратегию оптимизации. При этом работать следует над ухищрениями, в точности противоположными тем, что применялись


47. Оптимизация циклов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

47. Оптимизация циклов Существует большое число методов оптимизации циклов с самыми экзотическими названиями: «разгрузка циклов», «вывод инвариантов за циклы», «устранение индуктивных переменных», «сращивание циклов», «разматывание циклов» и т. д. В действительности


12 Оптимизация

Из книги Установка и настройка Windows XP. Легкий старт автора Донцов Дмитрий

12 Оптимизация Преждевременная оптимизация — корень всех зол. —Ч. Хоар Данная глава очень короткая, поскольку главное, чему учит опыт Unix относительно оптимизации производительности, — как узнать, когда не следует выполнять оптимизацию. Второстепенный урок заключается


4. Оптимизация Windows XP

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

4. Оптимизация Windows XP Мир, в котором мы живем, не совершенен. Нам все время приходится выбирать между хорошим и тем, что еще лучше.Несомненно, Windows XP – быстрая и красивая операционная система. Но если вам вдруг показалось, что игры работают немного медленно, а приложения


12 Оптимизация

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

12 Оптимизация Преждевременная оптимизация — корень всех зол. -Ч. Хоар Данная глава очень короткая, поскольку главное, чему учит опыт Unix относительно оптимизации производительности, — как узнать, когда не следует выполнять оптимизацию. Второстепенный урок заключается в


Оптимизация

Из книги Прибыльный блог: создай, раскрути и заработай автора Литвин Евгений

Оптимизация Теперь сайт работает точно так, как и планировалось. Вы открываете доступ всем желающим, и начинается веселье.Если вы аккуратно и точно выполнили все необходимые действия, не торопясь, прошли каждый этап создания сайта, то настало время переходить к


Глава 5 Оптимизация

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Глава 5 Оптимизация …ты скажи ему, что во всякой вещи надо соблюдать меру… Уильям Шекспир. Много шума из ничего «Любая задача выполнима, если она поддается измерению». Давайте поверим в данное утверждение и постараемся правильно выбрать показатели, которые будем


Поисковая оптимизация

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

Поисковая оптимизация Под поисковой оптимизацией (англ. Search Engine Optimization, SEO) понимается комплекс работ по корректировке внутреннего устройства сайта и внешних факторов с целью усиления позиции сайта по определенным запросам в поисковых системах.Поисковые системы — это


12.2.8. Оптимизация Samba

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

12.2.8. Оптимизация Samba Ваш Samba-сервер медленно работает, и вы уже устали от постоянных жалоб пользователей? Лучшим выходом из данной ситуации будет покупка нового винчестера. Лучше всего покупать SCSI-винчестер со скоростью 10000 оборотов в минуту. В крайнем случае подойдет


Глава 6 Оптимизация

Из книги Социальные сети [Источники новых клиентов для бизнеса] автора Парабеллум Андрей Алексеевич

Глава 6 Оптимизация Если с увеличением объема вашей базы данных она стала работать слишком медленно, зачастую самый простой путь решения этой проблемы – увеличение мощности аппаратной платформы сервера. Однако повысить быстродействие системы можно и без наращивания


6.2. Оптимизация запросов

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

6.2. Оптимизация запросов Основным способом повышения производительности запросов являются индексы. Определить, действительно ли созданные вами индексы используются запросом, позволяет командаEXPLAIN <Текст запроса>; Набор данных, выводимый командой EXPLAIN, содержит


Оптимизация фильма

Из книги автора

Оптимизация фильма Здесь мы рассмотрим средства, предлагаемые Flash для анализа процесса загрузки и воспроизведения фильма. Благодаря им мы сможем выявить "узкие места" нашего фильма. Также мы выясним, что можно сделать, дабы наши фильмы стали компактнее и


Оптимизация сайта

Из книги автора

Оптимизация сайта Поговорим о том, как лучше оформить сайт для того, чтобы он способствовал продвижению в социальных сетях и соответствовал поставленным задачам. Сайт – это точка вашего контакта с клиентом, первая и основная. У вашего сайта должны быть хороший дизайн и


33.6. Оптимизация

Из книги автора

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