Writing ARM and Thumb Assembly Language
ARM DUI 0068B
Copyright © 2000, 2001 ARM Limited. All rights reserved.
2-55
2.10.4
Finding the end of the allocated data
You can use the
FIELD
directive with an operand of
0
to label a location within a
structure. The location is labeled, but the location counter is not incremented.
The size of the data structure defined in Example 2-19 depends on the values of
MaxStrLen
and
ArrayLen
. If these values are too large, the structure overruns the end of
available memory.
Example 2-19 uses:
•
an
EQU
directive to define the end of available memory
•
a
FIELD
directive with an operand of
0
to label the end of the data structure.
An
ASSERT
directive checks that the end of the data structure does not overrun the
available memory.
Example 2-19
StartOfData EQU 0x1000
EndOfData EQU 0x2000
MAP StartOfData
Integer FIELD 4
Integer2 FIELD 4
String FIELD MaxStrLen
Array FIELD ArrayLen*8
BitMask FIELD 4
EndOfUsedData FIELD 0
ASSERT EndOfUsedData <= EndOfData