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