Лабораторная работа: Машинно-зависимая и машинно-независимая оптимизация кода ассемблера
DOIT Near _TEXT:0054
DONE Near _TEXT:0078
ELSE_1 Near _TEXT:0037
FOR_B_1 Near _TEXT:0010
MAIN Near _TEXT:0000
PUTI2 Near _TEXT:0068
SL_ITOA Near _TEXT:0041
SL_UTOA Near _TEXT:005C
__BUFRW Byte DGROUP:0000
Groups & Segments Bit Size Align Combine Class
DGROUP Group
STACK 16 0100 Para Stack STACK
_DATA 16 00FF Word Public DATA
_TEXT 16 0080 Word Public CODE
3. Машинно-зависимая оптимизация кода ассемблера
Машинно-зависимая оптимизация предполагает:
1) Использование регистров процессора вместо ячеек оперативной памяти.
2) Использование непосредственно заданных операндов.
3) Использование косвенной адресации, когда операнд хранит адрес операнда.
4) Ограничение использования стека.
программа оптимизация ассемблер код
4. Машинно-независимая оптимизация кода ассемблера
Машинно-независимая оптимизация предполагает:
1. Одним из важнейших источников оптимизации кода является удаление общих подвыражений, т.е. подвыражений, которые встречаются в нескольких местах программы и вычисляют одно и то же выражение.
2. Другим источником оптимизации кода является удаление инвариантов цикла. Так называются подвыражения внутри цикла, результирующие значения которых не изменяются внутри цикла при переходе от одной итерации к другой. Поскольку для большинства программ основное время работы приходится на выполнение циклов, экономия времени от подобной оптимизации может быть весьма существенной.
3. Еще один источник оптимизации кода состоит в замене менее эффективных операций на более эффективные.
Выводы
До оптимизации исполняемый файл составлял 660 байт, а после оптимизации 640 байт.
В ходе оптимизации были произведены следующие действия: