Assembler Reference

3.5.4Assembly 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

3-14

Copyright © 2000, 2001 ARM Limited. All rights reserved.

ARM DUI 0068B

Page 92
Image 92
ARM VERSION 1.2 manual Assembly time substitution of variables, Gbls