2017-06-18 156 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兼容。它可能不支持你想要的。這是一個相當先進的宏功能。 –