You copied the Doc URL to your clipboard.

Revisions for Using the Assembler

The following technical changes have been made to Using the Assembler.

Table 42. Differences between issue E and issue F


Topics affected

Clarified the range of addresses accessible to the ADR instruction and the ADRL pseudo-instruction in ARM state.

Where appropriate:

  • changed Thumb-2 to 32-bit Thumb

  • changed Thumb-2EE to ThumbEE.

Various topics

Changed the minor version component of the built-in variable ARMASM_VERSION from one to two digits.

Built-in variables and constants

Table 43. Differences between issue C and issue D


Topics affected

Added note about --use_frame_pointer.

General-purpose registers

Changed ARMCC41* environment variables to ARMCCnn*. And added link to the topic Toolchain environment variables in the Introducing the ARM Compiler toolchain document.

Specify command line options with an environment variable

Added topic on directives that can be omitted in pas 2. And added an Xref to this topic from How the assembler works.

Directives that can be omitted in pass 2 of the assembler

Added that all instructions must appear in both passes.

How the assembler works

Added ARM Glossary to other information.

Conventions and feedback

Table 44. Differences between issue B and issue C


Topics affected

Added topic on 2 pass assembler diagnostics.

pass assembler diagnostics

Added topic on How the assembler works.

How the assembler works

Table 45. Differences between issue A and issue B


Topics affected

Split the General-purpose registers topic into two. The second topic is called Register accesses.

Added that PC is not considered as a general-purpose register and mentioned that the Assembler Reference describes when SP and PC can be used.

General-purpose registers

Mentioned that the use of PC in reglist in 32-bit Thumb instructions is for LDM and POP only.

Load and store multiple instructions available in ARM and Thumb

Added a note that ARM instructions are deprecated if reglist contains SP or PC (STM and PUSH), or both PC and LR (LDM and POP).

Load and store multiple instructions available in ARM and Thumb

Added a topic on Instruction and directive relocations.

Instruction and directive relocations

Added a topic on Thumb code size diagnostics.

Thumb code size diagnostics

Added a topic on ARM and Thumb instruction portability diagnostics.

ARM and Thumb instruction portability diagnostics

Added a link to Thumb code size diagnostics.

Instruction width selection in Thumb

Added that symbols beginning with $v must be avoided.

Symbol naming rules

Removed | as an alias for :OR:

Addition, subtraction, and logical operators

Clarified that NEON is optionally available on ARMv7-A and ARMv7-R but not on ARMv7E-M. Clarified that ARMv7E-M adds only the VFP single-precision floating-point instructions.

Architecture support for NEON and VFP

Added a new topic on how to input assembly code using stdin.

Using stdin to input source code to the assembler

Added --execstack and --no_execstack to the Output group of command line options.

Assembler commands listed in groups