Программирование на Ассемблере

       

Директива 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.



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