Assembler - язык неограниченных возможностей

         

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


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

.macro имя, аргументы

Конец макроопределения:

.endm

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

.exitm

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

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



Содержание раздела