我正在尝试编写用于打印字符串的宏。这段代码工作正常:
include \masm32\include\masm32rt.inc
.const
enterA db "a: ", 0
.code
main proc
invoke crt_printf, addr enterA
invoke ExitProcess, NULL
main endp
end main
但是如果我为此定义宏..
include \masm32\include\masm32rt.inc
.const
enterA db "a: ", 0
.code
input macro tip
invoke crt_printf, addr tip
endm
main proc
input enterA
invoke ExitProcess, NULL
main endp
end main
所以,我认为不可能在宏中使用invoke。为什么?
答案 0 :(得分:1)
在宏中使用invoke
是完全可以的。问题是您将宏命名为input
。已经在masm32\macros\macros.asm
中使用该名称的宏已包含在masm32\include\masm32rt.inc
中,该代码包含在{{1}}中。因此,只需为宏选择一个不同的名称。