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

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

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

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

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

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

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

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

Содержание

Достоинства

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

Недостатки

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

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

macro stos0 {
    xor al,al
    stosb
}

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

stos0

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

xor al,al
stosb

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Макрос в языке ассемблера" в других словарях:

  • Макрос — Для термина «Макрос» см. другие значения. Мáкрос (от англ. macros, мн.ч. от macro) программный объект, который во время вычисления заменяется на новый объект, создаваемый определением макроса на основе его аргументов, затем выражается… …   Википедия

  • Язык ассемблера — Листинг программы на языке ассемблера Motorola MC6800 (слева идут адреса и машинные коды в шестнадцатеричной системе, вычисленные и сгенерированн …   Википедия

  • Макрокоманда — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей. Для термина «Макрос» см. другие значения. Макрокоманда или макрос (от греч. μακρός большой, долгий;) …   Википедия

  • Макросы — У термина «Макрос» существуют и другие значения. Макрос (от англ. macros, мн.ч. от macro) программный объект, при обработке «развёртывающийся» в последовательность действий или команд. Содержание 1 Макросы в прикладных программах …   Википедия

  • Макроязык — Макроязык  набор правил для объявления и использования макросов. Макросы используются в языках программирования, например, в ассемблере и в прикладных программах, например, в Microsoft Office. См. также Макрос в языке ассемблера RSL …   Википедия

  • Сравнение языков программирования — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей.  Условные обозначения  …   Википедия

  • Си (язык программирования) — У этого термина существуют и другие значения, см. Си. Запрос «Язык программирования Си» перенаправляется сюда; см. также другие значения. Си Класс языка: процедурный Тип исполнения: компилируемый Появился в: 1969 1973 Автор( …   Википедия

  • Nemerle — Семантика: мультипарадигменный, объектно ориентированный, функциональный, императивный Тип исполнения: компилируемый Появился в: 0.9.3 16 мая …   Википедия

  • Указатель (тип данных) — У этого термина существуют и другие значения, см. Указатель. Диаграмма указателей Указатель (пойнтер, англ. pointer)  переменная, диапазон значений которой состоит из адресов ячеек памяти и специального значения  нулевого адреса.… …   Википедия

  • Clojure — Класс языка: функциональный, мультипарадигмальный Появил …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»