Code: Select all
Global g
Macro Var(a)
!mov eax, [v_a]
EndMacro
Var(g)Code: Select all
Global g
Macro Var(a)
!mov eax, [v_ a]
EndMacro
Var(g)Now, is the only option to enable inline asm? I don't like it because of several reasons like the case correction and that the referencing of variables is not untouched.
What if I want a macro that is called like this:
Address(variable)
and moves the memory address of variable into eax? I can't use the approaches above with !. But I can always turn on inline asm and it should be a way to do it, or not?
Code: Select all
Global g = 5
Macro Address(a)
MOV eax, a
EndMacro
Address(g)Code: Select all
Global g = 5
Macro Address(*a)
MOV eax, *a
EndMacro
Address(g)Code: Select all
Global g = 5
Macro Address(a)
MOV eax, *a
EndMacro
Address(g)Code: Select all
Global g = 5
Macro Address(a)
MOV eax, @a
EndMacro
Address(g)Now I don't have any more options but changing the requirements to get the macro to work. Like Address(@variable). But that's what I want to avoid.
Is this a logic "hole" in the macro system?

