| |||||||
Technical Support On-Line Manuals RealView Assembler User's Guide | MACRO and MEND
The Two directives are used to define a macro. The syntax is:
MACRO
{$
where:
If you start any Within the macro body, parameters such as
Use In a macro that uses several internal labels, it is useful to define each internal label as the base label with a different suffix. Use a dot between a parameter and following text, or a following parameter, if a space is not required in the expansion. Do not use a dot between preceding text and a parameter. You can use the Macros define the scope of local variables (see LCLA, LCLL, and LCLS). Macros can be nested (see Nesting directives).
; macro definition
MACRO ; start macro definition
$label xmac $p1,$p2
; code
$label.loop1 ; code
; code
BGE $label.loop1
$label.loop2 ; code
BL $p1
BGT $label.loop2
; code
ADR $p2
; code
MEND ; end macro definition
; macro invocation
abc xmac subr1,de ; invoke macro
; code ; this is what is
abcloop1 ; code ; is produced when
; code ; the xmac macro is
BGE abcloop1 ; expanded
abcloop2 ; code
BL subr1
BGT abcloop2
; code
ADR de
; code
Using a macro to produce assembly-time diagnostics:
MACRO ; Macro definition
diagnose $param1="default" ; This macro produces
INFO 0,"$param1" ; assembly-time diagnostics
MEND ; (on second assembly pass)
; macro expansion
diagnose ; Prints blank line at assembly-time
diagnose "hello" ; Prints "hello" at assembly-time
diagnose | ; Prints "default" at assembly-time
| ||||||
| |||||||