2017-06-18 137 views
0

我想检查宏命令中是否有参数,如果没有参数,请不要执行我的宏代码。在FASM,它看起来像:检查宏是否存在参数

F MACRO arg1 
if ~ arg eq 
mov ax, arg1 
add ax,ax 
add ax, 5 
end if 
ENDM 

但组装此代码返回一个错误:

(19) illegal instruction: if ~ arg eq or wrong parameters.

我如何重写这个宏,以便它在emu8086?

回答

1

我从来没有用过Emu8086,但从我在网上可以知道的,它有一个内置的汇编程序,它与MASM和TASM语法兼容。在这种情况下,您将使用IFB(如果符号为空)和IFNB(如果符号为而不是为空)条件指令。

因此,您F宏将被写成如下:

F MACRO arg1 
IFNB <arg1>   ; if arg1 is not blank/empty 
    mov ax, arg1 
    add ax, ax 
    add ax, 5 
ENDIF 
ENDM F 
+0

http://imgur.com/a/XkfJn – Burning

+0

没有IF-ENDIF它工作正常 – Burning

+0

好吧那么显然emu8086不完全MASM兼容。它可能不支持你想要的。这是一个相当先进的宏功能。 –