在masm中的宏调用中有一个本地函数
格式:local 形式参数
功能:在宏扩展时候,宏汇编程序自动的为其后的形参顺序生成特殊符号(范围在??0000~??FFFFH),并用这些特殊符号取代宏体中的形参,从而避免符号重复定义的错误
local语句必须放在宏体中的第一条语句,
eg
abs macro var
local p
cmp var,0
jge p
neg var
p: ...
endm
当宏被调用不止一次时候不会发生错误
而在nasm中则是用%%来实现的。而且不约束,(不似local只能在第一句)
例如
:
%macro ret 0
jz %%mylove
ret
%%mylove: .....
%endmacro
其效果和local一样