4.1. Определение простых макросов

Использую EQU можно делать наиболее простые замены в исходном тексте при обработке препроцессором. Большими возможностями обладают макросы. Командой MACRO можно создавать собственные инструкции.

Синтаксис:

macro name

{

; тело макроса

}

Когда препроцессор находит директиву macro, он определяет макрос с именем name. Далее, встретив в исходном тексте строку, начинающуюся с name, препроцессор заменит name на тело макроса — то, что указано в определении между скобочками { и }. Имя макроса может быть любым допустимым идентификатором, а тело макроса — всё, что угодно, за исключением символа }, который означает завершение тела макроса.

Например:

macro a

{

 push eax

}

xor eax, eax

 a

будет заменено на:

xor eax, eax

push eax

Или:

macro a

{

 push eax

}

macro b

{

 push ebx

}

b

a

получим:

push ebx

push eax

Разумеется, макросы не обязательно оформлять так, как выше, можно делать и так:

macro push5 {push dword 5}

push5

получим:

push dword 5

Или:

macro push5 {push dword 5

}

с тем же самым результатом. Скобочки можете размещать как хотите.