_call宏定义 方法

作者在 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
把各个参数的值压入栈

默认分类 | 阅读 4499 次
文章评论,共0条
游客请输入验证码
浏览1970428次