Макрос в языке ассемблера
Материал из Википедии — свободной энциклопедии
Макрос — символьное имя, заменяющее несколько команд языка ассемблера.
Может включать в себя: инструкции, данные, метки (в том числе и локальные); могут принимать входные аргументы.
В зависимости от используемого ассемблера синтаксис объявления макроса может существенно различаться.
Большинство современных ассемблеров поддерживают передачу входных параметров макросу.
Макросы «разворачиваются» в последовательность кода и данных во время ассемблирования.
Содержание |
[править] Достоинства
- упрощение и ускорение написания программы
- повышение компактности
- повышение наглядности текста программы
[править] Недостатки
- использование «шаблонного кода» в то время как для каждой конкретной ситуации код, возможно, можно улучшить
- использование одной процедуры, вызываемой N раз часто выгоднее использования вставки одного и того же макроса (генерирующего один и тот же код) N раз в текст программы
- теряется «контроль над каждым байтом программы», именно по этой причине многие программисты не используют макросы
[править] Пример объявления макроса (FASM)
macro stos0 { xor al,al stosb }
При дальнейшей вставке макроса в текст
stos0
препроцессор заменит его на последовательность
xor al,al stosb