6.1.9.27 Local Directive
The LOCAL label
directive allows unique labels to
be defined for each expansion of a given macro. Any symbols listed after the
LOCAL
directive will have a unique assembler generated symbol
substituted for them when the macro is expanded. For example:
down MACRO count
LOCAL more
more: decfsz count
goto more
ENDM
when expanded, will include a unique assembler generated label in place of more. For example:
down foobar
expands to:
??0001 decfsz foobar
goto ??0001
If invoked a second time, the label more would expand to
??0002
and multiply defined symbol errors will be averted.