作者在 2008-10-17 12:35:21 发布以下内容
;文件:attach.asm.
;宏定义.
_call MACRO procedure, parameters:VARARG
LOCAL param, reversed
reversed TEXTEQU <>
% for param, <parameters>
reversed CATSTR <param>, <!,>, reversed
endm
% for param, <reversed>
push param
endm
call procedure
ENDM
这里的 reversed TEXTEQU <> 代表reversed 赋值为一个空字符串
然后 % for param, <parameters>
reversed CATSTR <param>, <!,>, reversed
endm 取出各个参数 parameters 的值
注意:reversed CATSTR <param>, <!,>, reversed 就是为了把参数间的分隔符","恢复
CATSTR 就是把各个字符串链接起来,相当C语言中的strcat
for 等效于 IRP
然后使用% for param, <reversed>
push param
endm
把各个参数的值压入栈
;宏定义.
_call MACRO procedure, parameters:VARARG
LOCAL param, reversed
reversed TEXTEQU <>
% for param, <parameters>
reversed CATSTR <param>, <!,>, reversed
endm
% for param, <reversed>
push param
endm
call procedure
ENDM
这里的 reversed TEXTEQU <> 代表reversed 赋值为一个空字符串
然后 % for param, <parameters>
reversed CATSTR <param>, <!,>, reversed
endm 取出各个参数 parameters 的值
注意:reversed CATSTR <param>, <!,>, reversed 就是为了把参数间的分隔符","恢复
CATSTR 就是把各个字符串链接起来,相当C语言中的strcat
for 等效于 IRP
然后使用% for param, <reversed>
push param
endm
把各个参数的值压入栈