Asmc Macro Assembler Reference
Parsing of labels
All expansions are pre-processed by the assembler and this may expand macros and other directives before labels. If a macro is added at the same line as a label this may fail.
Example
foo macro reg bswap reg exitm <reg> endm do: mov eax,foo( eax ) ... mov ecx,"3210" jmp do
As a result the code produced by the macro will be expanded above the label and thus the jump will fail.
bswap ecx do: mov eax,ecx ...
Asmc will expand the line left to right in this case.