MASM宏语法错误?

时间:2015-03-10 19:35:20

标签: windows assembly macros masm irvine32

我正在尝试在MASM中编写一个宏我已经查看了我在网上看到的语法,并且我已经查看了我的书。我使用相同的语法,但它一直给我一个错误的宏调用本身或我正在尝试使用的参数。我不知道什么是错的,我觉得愚蠢的问堆栈溢出社区,但我已经用完了选项,请帮忙。代码如下。

; Description: Bit manipulation using macros
; 
; Revision date:

INCLUDE Irvine32.inc
.data
number dword 1
.code

main PROC
mReverse number; MAcro call

exit
main ENDP

mReverse MACRO number
local label , count
.data
count dword 7
.code
Wh1le&label:
    cmp count, 0
    jne Do1&label
    jmp endWh1le&label
    Do1&label:
        rol &number,1
        dec count
        jmp Wh1le&label
endWh1le&label:
ENDM
END main

1 个答案:

答案 0 :(得分:2)

当MASM预处理器到达行mReverse number; MAcro call时,它不知道"指令" mReverse因为宏将在稍后定义。将整个mReverse MACRO...ENDM块移动到程序的开头。