Datasheet

Differences
ARM DUI 0064D Copyright © 1999-2001 ARM Limited. All rights reserved. 2-53
There are new synonyms
FIELD
and
SPACE
for
#
and
%
directives.
Directives are now accepted in all upper case, or all lower case, but not a mixture.
Previously, only the upper case form was accepted.
The
EXPORT
directive may have a new attribute,
WEAK
. This defines the exported
symbol as a
WEAK
symbol in ELF.
The semantics of the
EXTERN
and
IMPORT
directives have changed and they are no
longer synonyms. An unused
IMPORT
generates an undefined global symbol,
whereas an unused
EXTERN
generates no symbol. (In SDT 2.50/2.51 an unused
EXTERN
or
IMPORT
symbol was made
WEAK
).
The
AREA
directive has a new attribute,
ASSOC= area_name
) that requires this
AREA
to
be included in a link step whenever the associate area (named by the
ASSOC=area_name
) is included. The assembler implements the requirement by
generating an
R_ARM_NONE
relocation at offset 0 of area
area_name
, relative to the
section symbol for the area defined by the
AREA
directive.
The new directive
REQUIREarea_name
requires
area_name
. to be included in any link
step that includes the requiring section. The assembler implements the
requirement by generating an
R_ARM_NONE
relocation in the current section to the
required
area_name
.
The
DCD
directive now accepts expressions evaluating the difference between a
label in another section and a position in the current section.
The
DCW
and
DCB
directives now accept expressions including an external symbol.
The new
DCDO
directive treats label operands as sb-relative.
The literal-using, pseudo-instruction forms of load and store instructions (for
example,
LDR rx,=yyy
) can now take external symbols as immediate values (
yyy
).
The ARM instructions of the form
data-processing-op rd,rn,#sym
can now take
external symbols as immediate operands.
ARM and Thumb SWI instructions can now take external symbols as immediate
operands.
If you select a cpu or architecture that does not support Thumb, an attempt to
generate Thumb code will generate an error message. For example
armasm -cpu 4
will not accept Thumb instructions but
armasm -cpu 4T
will.