使用%ifmacro和NASM汇编程序

时间:2017-02-20 17:32:16

标签: assembly x86 nasm

假设我有这个宏:

%macro MYMACRO 2-*
    ;some code here
%endmacro

这些测试通过:

%ifmacro MYMACRO
%ifmacro MYMACRO 2
%ifmacro MYMACRO 1-*
%ifmacro MYMACRO 2-*
%ifmacro MYMACRO 3-*

这个测试没有通过:

%ifmacro MYMACRO 1

我的问题是: 1 1 - * 中,为什么%ifmacro MYMACRO 1 - * 传递和%ifmacro MYMACRO 1没有?

1 个答案:

答案 0 :(得分:1)

根据nasm manual

  

如果使用给定的宏定义宏,则认为%ifmacro为true   名称和参数数量会导致定义冲突。

显然12-*不会发生冲突,1-*会发生冲突。