11.3.8. Макроопределения

Начало макроопределения:

.macro имя, аргументы Конец макроопределения:

. endm

Преждевременный выход из макроопределения: .exitm

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

Хотя стандартные директивы и включают в себя такие вещи, как блоки повто­рений и макроопределения, их реализация достаточно упрощена, и при програм­мировании для UNIX на ассемблере часто применяютдополнительные препроцес­соры. Долгое время было принято использовать С-препроцессор или М4, и многие ассемблеры даже могут вызывать их автоматически, но в рамках проекта GNU был создан специальный препроцессор для ассемблера - gasp. Он включает раз­личные расширения вариантов условного ассемблирования, построения циклов, макроопределений, листингов, директив определения данных и т. д. Мы не будем заниматься реализацией таких сложных программ, которым может потребовать­ся gasp, даже не воспользуемся и половиной перечисленных директив, но о суще­ствовании этого препроцессора следует помнить.