ВУЗ:
Составители:
Рубрика:
- 43 -
ющая за командой передачи управления; или операция вызова подп-
рограммы.
Внутри линейного участка регистры распределяются вышеописан-
ным способом. При переходе к новому участку все значения
регистров сохраняются в рабочих переменных.
в) Изменение порядка выполнения команд с целью сокращения
операций обращения к памяти.
г) Использование специфических характеристик и инструкций
конкретной машины. Например, специальных инструкций организации
циклов, или соответствующих доступных способов адресации.
Машинно-независимая оптимизация кода включает в себя:
а) Удаление общих подвыражений. Это подвыражения, которые
встречаются в нескольких местах программы и вычисляют одно и тоже
выражение.
б) Удаление инвариантов цикла. Это подвыражения внутри цик-
ла, результирующие значения которых не изменяются в цикле при пе-
реходе от одной итерации к другой.
в) Замена менее эффективных операций на более эффективные.
Например, J(I) = 3*(I-1) --> J(I) = J(I-1)+3;
X(I) = 2**I --> X(I) = X(I-1)*2.
Такую оптимизацию можно частично осуществить на уровне ис-
ходной программы, написанной на языке высокого уровня. Но
оптимизировать вычисления индексов массива программист на этом
уровне не сможет.
г) Вычисление значений операндов, известных на момент компи-
ляции.
Паpаметpы компилятоpа Turbo-C, позволяющие получить
ассемблеpный код пpогpаммы
В набоp инстpументов пpогpаммиста turboC кpоме туpбо-сpеды
tc входит автономный компилятоp tcc, позволяющий получить объект-
ный код. Тcc позволяет получить код на ассемблеpе с помощью сле-
дующих паpаметpов:
> tcc -B <имя файла с исходным текстом>
или
> tcc -S <имя исходного файла>
Для подключения библиотек к пpогpамме на С необходимо задать
Страницы
- « первая
- ‹ предыдущая
- …
- 41
- 42
- 43
- 44
- 45
- …
- следующая ›
- последняя »