Цифровые устройства и микропроцессор. Программирование микроконтроллеров семейства MCS-51. Жаринов О.О. - 21 стр.

UptoLike

Составители: 

21
дить к уменьшению времени выполнения программы, но обычно это не
так, поскольку для сокращения объема программы приходится прибе-
гать к циклам, организации подпрограмм и другим методам, которые
требуют больше времени на выполнение. С другой стороны, если отка-
заться от циклов и переходов к подпрограммам, то чтение кода про-
грамм будет затруднено. Поэтому часто приходиться искать компромис-
сы, такие как:
– сокращение потребных объемов памяти программы и памяти дан-
ных (для хранения промежуточных результатов) за счет снижения быст-
родействия;
– повышение быстродействия за счет ухудшения возможностей до-
работок и доступности текста программы для чтения;
– совместная оптимизация – достижение наибольшего быстродей-
ствия при наименьшей длине кода программы – плохо поддается фор-
мализации и существенно увеличивает время разработки программы.
Оптимизация программы по быстродействию. Первое, на что сле-
дует обратить внимание – это алгоритм действий, который использует-
ся для выполнения поставленной задачи. Если он не удовлетворяет тре-
бованиям по быстродействию, то стоит подыскать другой алгоритм, ко-
торый выполнял бы те же задачи быстрее. Второй момент – это повтор-
ные вычисления. Если в программе вычислено какое-либо число и это
значение потребуется в дальнейшем в другом месте программы, то его
следует сохранить в какой-либо ячейке ОЗУ и извлекать по мере необ-
ходимости, а не вычислять заново. В третьих, следует по возможности
учитывать особенности решаемой задачи с тем, чтобы вместо универ-
сальных команд использовать команды, подходящие для конкретного
случая. Например, умножение на 4 может быть реализовано двумя ко-
мандами сдвига влево RLC вместо использования универсальной ко-
манды умножения MUL, которая выполняется вдвое дольше.
И, наконец, следует заметить, что если в программе используют-
ся условные переходы, всегда желательно преобразовывать логичес-
кую структуру программы таким образом, чтобы условие перехода в
среднем оказывалось истинным реже, чем условие для его отсутствия.
При оптимизации иногда стоит вообще отказаться от использования
циклов: в случае, если расчетное время выполнения тела цикла бу-
дет меньше времени выполнения команд передачи управления, луч-
ше последовательно разместить повторяющиеся команды. В ряде слу-
чаев целесообразно отказаться и от организации подпрограмм, что-