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

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

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

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

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

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

Содержание

Достоинства

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

Недостатки

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

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

macro stos0 {
    xor al,al
    stosb
}

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

stos0

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

xor al,al
stosb

См. также

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home