| |||
| Home > Assembler Reference > Symbols > 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). You must set the contents of the variable before you can use it.
If you require 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.
; 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