.macro
The commands .macro and .endm allow you to define macros that
generate assembly output.  For example, this definition specifies a macro
sum that puts a sequence of numbers into memory:
        .macro  sum from=0, to=5
        .long   \from
        .if     \to-\from
        sum     "(\from+1)",\to
        .endif
        .endm
With that definition, `SUM 0,5' is equivalent to this assembly input:
        .long   0
        .long   1
        .long   2
        .long   3
        .long   4
        .long   5
.macro macname
.macro macname macargs ...
.macro statements:
.macro comm
comm, which takes no
arguments.
.macro plus1 p, p1
.macro plus1 p p1
plus1,
which takes two arguments; within the macro definition, write
`\p' or `\p1' to evaluate the arguments.
.macro reserve_str p1=0 p2
reserve_str, with two
arguments.  The first argument has a default value, but not the second.
After the definition is complete, you can call the macro either as
`reserve_str a,b' (with `\p1' evaluating to
a and `\p2' evaluating to b), or as `reserve_str
,b' (with `\p1' evaluating as the default, in this case
`0', and `\p2' evaluating to b).
.endm
.exitm
\@
as maintains a counter of how many macros it has
executed in this pseudo-variable; you can copy that number to your
output with `\@', but only within a macro definition.
Go to the first, previous, next, last section, table of contents.