Макрос в языке ассемблера

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Макрос — символьное имя, заменяющее несколько команд языка ассемблера.

Макросы могут включать в себя инструкции, данные, метки (в том числе и локальные), директивы (в том числе условные) ассемблера, содержать вызов других макросов, могут принимать входные аргументы.

Большинство современных ассемблеров поддерживают передачу входных параметров макросу.

В зависимости от используемого ассемблера синтаксис объявления, вызова макросов и передачи им параметров может существенно различаться.

Макросы «разворачиваются» в последовательность кода и данных во время ассемблирования.

Перед тем как использовать макрос необходимо его объявить. Часто стандартные макросы уже находятся в готовом виде в стандартных подключаемых файлах. Для их использования в программе необходимо просто подключить нужный файл.

Содержание

Достоинства

  • упрощение и ускорение написания программы
  • повышение компактности
  • повышение наглядности текста программы

Недостатки

  • использование «шаблонного кода» в то время как для каждой конкретной ситуации код, возможно, можно улучшить
  • использование одной процедуры, вызываемой N раз часто выгоднее использования вставки одного и того же макроса (генерирующего один и тот же код) N раз в текст программы
  • теряется «контроль над каждым байтом программы», именно по этой причине многие программисты не используют макросы

Пример объявления и вставки макроса (FASM)

macro stos0 {
    xor al,al
    stosb
}

При дальнейшей вставке макроса в текст

stos0

препроцессор заменит его на последовательность

xor al,al
stosb

См. также

Личные инструменты

Served in 0.054 secs.