Macro invocation, Local macro labels, Macro invocation local macro labels – Zilog Z8F0130 User Manual
Page 354
Using the Macro Assembler
UM013037-1212
330
Zilog Developer Studio II – Z8 Encore!
User Manual
A 9 value val,part1
000000 55 A+ 9 DB val_part1
A+ 9 macend
A 10 value val,part2
000001 33 A+ 10 DB val_part2
A+ 10 macend
Macro Invocation
A macro is invoked by specifying the macro name, and following the name with the
desired arguments. Use commas to separate the arguments.
Syntax
<macroname>[<arg>[(,<arg>)]...]
Example
store R1,R2,R3
This macro invocation, when used after the macro and as defined in the
section on page 329, causes registers R1 and R2 to be added and the result stored in regis-
ter R3.
Local Macro Labels
Local macro labels allow labels to be used within multiple macro expansions without
duplication. When used within the body of a macro, symbols preceded by two dollar signs
(
$$
) are considered local to the scope of the macro and therefore are guaranteed to be
unique. The two dollars signs are replaced by an underscore followed by a macro invoca-
tion number.
Syntax
$$
<label>
Example
LJMP: MACRO cc,label
JR cc,$$lab
JP label
$$lab: ENDMAC