2017-02-20 7 views
1

Пусть у меня есть этот макрос:Использование% ifmacro с 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- * поэтому почему % ifmacro MYMACRO 1- * проходит и % ifmacro MYMACRO 1 нет?

ответ

1

Согласно nasm manual:

% ifmacro считается истинным, если определение макроса с заданным именем и числом аргументов привести к конфликту определений.

Очевидно 1 не конфликтует с 2-*, но 1-* делает.

Смежные вопросы