Assembler Reference
3-14
Copyright © 2000, 2001 ARM Limited. All rights reserved.
ARM DUI 0068B
3.5.4
Assembly time substitution of variables
You can use a string variable for a whole line of assembly language, or any part of a line.
Use the variable with a
$
prefix in the places where the value is to be substituted for the
variable. The dollar character instructs the assembler to substitute the string into the
source code line before checking the syntax of the line.
Numeric and logical variables can also be substituted. The current value of the variable
is converted to a hexadecimal string (or
T
or
F
for logical variables) before substitution.
Use a dot to mark the end of the variable name if the following character would be
permissible in a symbol name (see
Symbol naming rules
on page 3-12). You must set
the contents of the variable before you can use it.
If you need a
$
that you do not want to be substituted, use
$$
. This is converted to a single
$
.
You can include a variable with a
$
prefix in a string. Substitution occurs in the same
way as anywhere else.
Substitution does not occur within vertical bars, except that vertical bars within double
quotes do not affect substitution.
Examples
; straightforward substitution
GBLS add4ff
;
add4ff SETS "ADD r4,r4,#0xFF" ; set up add4ff
$add4ff.00 ; invoke add4ff
; this produces
ADD r4,r4,#0xFF00
; elaborate substitution
GBLS s1
GBLS s2
GBLS fixup
GBLA count
;
count SETA 14
s1 SETS "a$$b$count" ; s1 now has value a$b0000000E
s2 SETS "abc"
fixup SETS "|xy$s2.z|" ; fixup now has value |xyabcz|
|C$$code| MOV r4,#16 ; but the label here is C$$code