SPNU118Z September 1995 – March 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
Table 5-1 through Table 5-17 summarize the assembler directives. In addition to the directives documented here, the ARM device software tools support the following directives:
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .bss
symbol,
size in
bytes[,
alignment
[, bank offset]] |
Reserves size bytes in the .bss (uninitialized data) section | .bss topic |
| .data | Assembles into the .data (initialized data) section | .data topic |
| .sect "section name" | Assembles into a named (initialized) section | .sect topic |
| .text | Assembles into the .text (executable code) section | .text topic |
| symbol
.usect "section name",
size in bytes
[, alignment[, bank offset]] |
Reserves size bytes in a named (uninitialized) section | .usect topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .endgroup | Ends the group declaration. | .endgroup topic |
| .gmember section name | Designates section name as a member of the group. | .gmember topic |
| .group group section name group type : | Begins a group declaration. | .group topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .retain "section name" | Instructs the linker to include the current or specified section in the linked output file, regardless of whether the section is referenced or not | .retain topic |
| .retainrefs "section name" | Instructs the linker to include any data object that references the current or specified section. | .retain topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .bits value1[, ... , valuen] | Initializes one or more successive bits in the current section | .bits topic |
| .byte value1[, ... , valuen] | Initializes one or more successive bytes in the current section | .byte topic |
| .char value1[, ... , valuen] | Initializes one or more successive bytes in the current section | .char topic |
| .cstring {expr1|"string1"}[,... , {exprn|"stringn"}] | Initializes one or more text strings | .string topic |
| .double value1[, ... , valuen] | Initializes one or more 64-bit, IEEE double-precision, floating-point constants | .double topic |
| .field value[, size] | Initializes a field of size bits (1-32) with value | .field topic |
| .float value1[, ... , valuen] | Initializes one or more 32-bit, IEEE single-precision, floating-point constants | .float topic |
| .half value1[, ... , valuen] | Initializes one or more 16-bit integers (halfword) | .half topic |
| .int value1[, ... , valuen] | Initializes one or more 32-bit integers | .int topic |
| .long value1[, ... , valuen] | Initializes one or more 32-bit integers | .long topic |
| .short value1[, ... , valuen] | Initializes one or more 16-bit integers (halfword) | .short topic |
| .string {expr1|"string1"}[,... , {exprn|"stringn"}] | Initializes one or more text strings | .string topic |
| .ubyte value1[, ... , valuen] | Initializes one or more successive unsigned bytes in current section | .ubyte topic |
| .uchar value1[, ... , valuen] | Initializes one or more successive unsigned bytes in current section | .uchar topic |
| .uhalf value1[, ... , valuen] | Initializes one or more unsigned 16-bit integers (halfword) | .uhalf topic |
| .uint value1[, ... , valuen] | Initializes one or more unsigned 32-bit integers | .uint topic |
| .ulong value1[, ... , valuen] | Initializes one or more unsigned 32-bit integers | .long topic |
| .ushort value1[, ... , valuen] | Initializes one or more unsigned 16-bit integers (halfword) | .short topic |
| .uword value1[, ... , valuen] | Initializes one or more unsigned 32-bit integers | .uword topic |
| .word value1[, ... , valuen] | Initializes one or more 32-bit integers | .word topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .align [size in bytes ] | Aligns the SPC on a boundary specified by size in bytes , which must be a power of 2; defaults to byte boundary | .align topic |
| .bes size | Reserves size bytes in the current section; a label points to the end of the reserved space | .bes topic |
| .space size | Reserves size bytes in the current section; a label points to the beginning of the reserved space | .space topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .arm | Begins assembling ARM UAL instructions. Equivalent to .state32. | .arm topic |
| .state16 | Begins assembling non-UAL 16-bit instructions | .state16 topic |
| .state32 | Begins assembling 32-bit instructions (default) | .state32 topic |
| .thumb | Begins assembling Thumb or Thumb-2 UAL instructions | .thumb topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .drlist | Enables listing of all directive lines (default) | .drlist topic |
| .drnolist | Suppresses listing of certain directive lines | .drnolist topic |
| .fclist | Allows false conditional code block listing (default) | .fclist topic |
| .fcnolist | Suppresses false conditional code block listing | .fcnolist topic |
| .length [page length] | Sets the page length of the source listing | .length topic |
| .list | Restarts the source listing | .list topic |
| .mlist | Allows macro listings and loop blocks (default) | .mlist topic |
| .mnolist | Suppresses macro listings and loop blocks | .mnolist topic |
| .nolist | Stops the source listing | .nolist topic |
| .option option1[, option2 , . . .] | Selects output listing options; available options are A, B, H, M, N, O, R, T, W, and X | .option topic |
| .page | Ejects a page in the source listing | .page topic |
| .sslist | Allows expanded substitution symbol listing | .sslist topic |
| .ssnolist | Suppresses expanded substitution symbol listing (default) | .ssnolist topic |
| .tab size | Sets tab to size characters | .tab topic |
| .title "string" | Prints a title in the listing page heading | .title topic |
| .width [page width] | Sets the page width of the source listing | .width topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .copy ["]filename["] | Includes source statements from another file | .copy topic |
| .include ["]filename["] | Includes source statements from another file | .include topic |
| .mlib ["]filename["] | Specifies a macro library from which to retrieve macro definitions | .mlib topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .common
symbol,
size in bytes [, alignment] .common symbol, structure tag [, alignment] |
Defines a common symbol for a variable. | .common topic |
| .def symbol1[, ... , symboln] | Identifies one or more symbols that are defined in the current module and that can be used in other modules. | .def topic |
| .global symbol1[, ... , symboln] | Identifies one or more global (external) symbols. | .global topic |
| .ref symbol1[, ... , symboln] | Identifies one or more symbols used in the current module that are defined in another module. | .ref topic |
| .symdepend dst symbol name[, src symbol name] | Creates an artificial reference from a section to a symbol. | .symdepend topic |
| .weak symbol name | Identifies a symbol used in the current module that is defined in another module. | .weak topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .asg ["]character string["], substitution symbol | Assigns a character string to substitution symbol. Substitution symbols created with .asg can be redefined. | .asg topic |
| .define ["]character string["], substitution symbol | Assigns a character string to substitution symbol. Substitution symbols created with .define cannot be redefined. | .asg topic |
| symbol .equ value | Equates value with symbol | .equ topic |
| .elfsym name, SYM_SIZE(size) | Provides ELF symbol information | .elfsym topic |
| .eval
expression,
substitution symbol |
Performs arithmetic on a numeric substitution symbol | .eval topic |
| .label symbol | Defines a load-time relocatable label in a section | .label topic |
| .newblock | Undefines local labels | .newblock topic |
| symbol .set value | Equates value with symbol | .set topic |
| .unasg symbol | Turns off assignment of symbol as a substitution symbol | .unasg topic |
| .undefine symbol | Turns off assignment of symbol as a substitution symbol | .unasg topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .if condition | Assembles code block if the condition is true | .if topic |
| .else | Assembles code block if the .if condition is false. When using the .if construct, the .else construct is optional. | .else topic |
| .elseif condition | Assembles code block if the .if condition is false and the .elseif condition is true. When using the .if construct, the .elseif construct is optional. | .elseif topic |
| .endif | Ends .if code block | .endif topic |
| .loop [count] | Begins repeatable assembly of a code block; the loop count is determined by the count. | .loop topic |
| .break [end condition] | Ends .loop assembly if end condition is true. When using the .loop construct, the .break construct is optional. | .break topic |
| .endloop | Ends .loop code block | .endloop topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .cstruct | Acts like .struct, but adds padding and alignment like that which is done to C structures | .cstruct topic |
| .cunion | Acts like .union, but adds padding and alignment like that which is done to C unions | .cunion topic |
| .emember | Sets up C-like enumerated types in assembly code | Section 5.10 |
| .endenum | Sets up C-like enumerated types in assembly code | Section 5.10 |
| .endstruct | Ends a structure definition | .cstruct topic, .struct topic |
| .endunion | Ends a union definition | .cunion topic, .union topic |
| .enum | Sets up C-like enumerated types in assembly code | Section 5.10 |
| .union | Begins a union definition | .union topic |
| .struct | Begins structure definition | .struct topic |
| .tag | Assigns structure attributes to a label | .cstruct topic, .struct topic.union topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| macname .macro [parameter1][,... , parametern ] | Begin definition of macro named macname | .macro topic |
| .endm | End macro definition | .endm topic |
| .mexit | Go to .endm | Section 6.2 |
| .mlib filename | Identify library containing macro definitions | .mlib topic |
| .var | Adds a local substitution symbol to a macro's parameter list | .var topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .emsg string | Sends user-defined error messages to the output device; produces no .obj file | .emsg topic |
| .mmsg string | Sends user-defined messages to the output device | .mmsg topic |
| .wmsg string | Sends user-defined warning messages to the output device | .wmsg topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .asmfunc | Identifies the beginning of a block of code that contains a function | .asmfunc topic |
| .endasmfunc | Identifies the end of a block of code that contains a function | .endasmfunc topic |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .setsect | Produced by absolute lister; sets a section | Chapter 378 |
| .setsym | Produced by the absolute lister; sets a symbol | Chapter 378 |
| Mnemonic and Syntax | Description | See |
|---|---|---|
| .cdecls [options,]"filename"[, "filename2"[, ...] | Share C headers between C and assembly code | .cdecls topic |
| .end | Ends program | .end topic |
In addition to the assembly directives that you can use in your code, the C/C++ compiler produces several directives when it creates assembly code. These directives are to be used only by the compiler; do not attempt to use these directives: