Простейшая команда препроцессора.
Синтаксис:
>name1 equ name2
Это команда говорит препроцессору, что необходимо заменить все последующие >name1
на >name2
.
Например:
>count equ 10 ; это команда препроцессора
>mov ecx, count
преобразуется в:
>mov ecx, 10
Ещё пример:
>mov eax, count
>count equ 10
>mov ecx, count
преобразуется в:
>mov eax, count
>mov ecx,10
потому что препроцессор заменит >count
только после директивы >equ
.
Даже это работает:
>10 equ 11
>mov ecx, 10
после обработки препроцессором, получим:
>mov ecx, 11
Обратите внимание, >name1
может быть любым идентификатором. Идентификатор — это всего лишь набор символов, завершаемый пробелом (space), символом табуляции (tab), концом строки (EOL), комментарием >;
, символом переноса строки >\
или оператором, включая операторы ассемблера и/или специальные символы вроде >,
или >}
.
>name2
может быть не только единичным идентификатором, берутся все символы до конца строки. >name2
может и отсутствовать, тогда >name1
будет заменен на пустое место.
Например:
>10 equ 11, 12, 13
>db 10
получим:
>db 11, 12, 13
Можно заставить препроцессор прекратить заменять идентификаторы, определённые директивой >EQU
. Это делает директива >RESTORE
.
Синтаксис:
>restore name1
>name1
— это идентификатор определённый ранее в директиве >EQU
. После этой команды name больше не будет заменяться на