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
}
с тем же самым результатом. Скобочки можете размещать как хотите.