2017-02-20 2 views
1

Angenommen, ich habe dieses Makro:Mit% ifmacro mit NASM Assembler

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

Diese Prüfungen bestehen:

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

Und dieser Test nicht besteht:

%ifmacro MYMACRO 1 

Meine Frage ist: ist in 1- * so warum % ifmacro MYMACRO 1- * geht und % ifmacro MYMACRO 1 nicht?

Antwort

1

Nach den nasm manual:

Das% ifmacro gilt als wahr, wenn ein Makro mit den angegebenen Namen und Anzahl der Argumente, die eine Definition Konflikt verursachen würde.

Offensichtlich 1 nicht mit 2-* in Konflikt, aber 1-* tut.