【发布时间】:2013-12-30 08:06:52
【问题描述】:
我要编写一个宏,它以E,NE,A,B... 作为参数和一个命令,即mov eax,ebx,如果前面的cmp 操作设置的条件为真,它将执行。
示例调用如下所示。
cmp bx,20
mDoIf E,<call Dumpregs>
我遇到的问题是,当我尝试使用以下定义进行编译时,我得到了两个错误之一。使用LOCAL 定义我得到Undefined Symbol Error: ??0000。当我删除 LOCAL 定义时,我收到一个错误:jump destination must specify a label。
mDoIf MACRO op, command
LOCAL true
J&op true
exitm
true:
command
exitm
endm
任何帮助将不胜感激。谢谢你。
【问题讨论】:
-
尝试左对齐标签“true:”。
-
对不起,没有骰子。我想我应该提供一些关于我用来编译东西的信息。我正在使用 Visual Studio 2012 专业版和来自 Kip Irvine 的 Assembly Langauge for x86 处理器第 6 版的 irvine32.lib。过去,将标签缩进并没有让我感到悲伤,尽管我确实尝试了你的建议,看看它是否可行。