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