Sorry, your browser is not supported. We recommend upgrading your browser.
We have done our best to make all the documentation and resources available on old versions of Internet Explorer, but vector image support and the layout may not be optimal. Technical documentation is available as a PDF Download.
0609 - Arm Compiler Migration and Compatibility Guide Version 6.9
Migrating from armasm to the armclang integrated assembler
Arm Compiler Migration and Compatibility Guide Version 6.9
You copied the Doc URL to your clipboard.
Arm Compiler Migration and Compatibility Guide : Miscellaneous directives
Miscellaneous directives perform a range of different functions.
The following table shows how to translate armasm syntax miscellaneous directives
to GNU syntax directives:
Table 5-8 Miscellaneous directives translation
armasm syntax directive
GNU syntax directive
foo EQU 0x1C
.equ foo, 0x1C
Assigns a value to a symbol. Note the rearrangement of operands.
.type StartHere, @function
Declares a symbol that can be used by the linker (that is, a symbol that is visible to the
armasm automatically determines the types of exported symbols. However, armclang requires that you explicitly specify the types of exported symbols using the .type directive.
If the .type directive is not specified, the linker outputs warnings of the form:
Warning: L6437W: Relocation #RELA:1 in test.o(.text) with respect to symbol...
Warning: L6318W: test.o(.text) contains branch to a non-code symbol symbol.
Includes a file within the file being assembled.
Provides the assembler with a name that is not defined in the current
Partial support, armclang does not fully support .incbin.
INFO n, "string"
The INFO directive
supports diagnostic generation on either pass of the assembly
(specified by n). The .warning directive does not let you specify a
particular pass, as the armclang integrated assembler only performs
The ENTRY directive declares an entry point to a program. armclang does not provide an equivalent directive. Use armlink --entry=location to specify the entry point directly to the linker, rather than defining it in the assembly code.
Marks the end of the assembly file.
Emits a build attribute which guarantees that the
functions in the file preserve 8-byte stack alignment.
syntax assembly language source files, even if you do not
specify the PRESERVE8
directive, armasm automatically
emits the build attribute if all functions in the file preserve
8-byte stack alignment. For GNU syntax assembly language source
files, the armclang integrated
assembler does not automatically emit this build attribute.
Therefore you must manually inspect and ensure that all
functions in your GNU syntax assembly language source file
preserve 8-byte stack alignment and then manually add the
directive to the file.