致命错误A1008:在masm中无法匹配的宏嵌套

时间:2015-08-25 12:59:13

标签: x86 masm

在.data指令

之前定义一个宏
    print macro char
      mov ax,char
      call WriteChar
    print endm

给出错误不匹配的宏嵌套。

2 个答案:

答案 0 :(得分:0)

我相信你的宏可能就像:

 Macro Print char
       mov ax, char
       Call WriteChar
 endm

您的错误与宏的结构有关。 问候。

答案 1 :(得分:0)

这是MACRO name MACRO [[parameter [[:REQ | :=default | :VARARG]]]]... statements ENDM [[value]] 所说的内容:

  

标记名为 name 的宏块,并为调用宏时传递的参数建立参数占位符。

ENDM

正如您所看到的,该宏应该以{{1​​}}结束,而不是name ENDM。事实上,如果我将print endm更改为endm,我将不再获得"无法匹配的宏嵌套"错误。