Директива IRP
IRP Параметр, <П1, П2, ...>
Команды
ENDM
Команды формируются столько раз, сколько задано параметров в угловых скобках. Каждый раз вместо параметра, заданного первым подставляется очередной параметр из списка заданных.
Пример. Составитьмакроопределение для поиска максимального для заданных 5 чисел.
ideal
p586
model flat
extrn ExitProcess:proc
MACRO MAX RES, X1, X2, X3, X4, X5
local m
ifidn <RES>, <eax>
reg equ ebx
else
reg equ eax
endif
push reg
mov reg, X1
IRP X, <X2, X3, X4, X5>
local n
cmp reg, X
jge short n
mov reg, X
n:
endm
mov RES, reg
endm
codeseg
begin:
MAX eax, 5, 4, 3, 6, 1
call ExitProcess
end begin
Если значение параметра, который подставляется, состоит из одной буквы, то используется макрос вида IRPC.