Assembler Directives
.align integer, pad
The .align directive causes the next data generated to be aligned modulo integer bytes.
Integer must be a positive integer expression and must be a power of 2. If specifed, pad is an
integer bye value used for padding. The default value of pad for the text section is 0x90
(nop); for other sections, the default value of pad is zero (0).
.ascii "string"
The .ascii directive places the characters in string into the object module at the current
location but does not terminate the string with a null byte ( ). String must be enclosed in
double quotes (") (ASCII 0x22). The .ascii directive is not valid for the .bss section.
.bcd integer
The .bcd directive generates a packed decimal (80-bit) value into the current section. The
.bcd directive is not valid for the .bss section.
.bss
The .bss directive changes the current section to .bss.
.bss symbol, integer
Defne symbol in the .bss section and add integer bytes to the value of the location counter
for .bss. When issued with arguments, the .bss directive does not change the current
section to .bss. Integer must be positive.
.byte byte1,byte2,...,byteN
The .byte directive generates initialized bytes into the current section. The .byte directive
is not valid for the .bss section. Each byte must be an 8-bit value.
.2byte expression1, expression2, ..., expressionN
Refer to the description of the .value directive.
.4byte expression1, expression2, ..., expressionN
Refer to the description of the .long directive.
.8byte expression1, expression2, ..., expressionN
Refer to the description of the .quad directive.
.comm name, size,alignment
The .comm directive allocates storage in the data section. The storage is referenced by the
identifer name. Size is measured in bytes and must be a positive integer. Name cannot be
predefned. Alignment is optional. If alignment is specifed, the address of name is aligned to
a multiple of alignment.
.data
The .data directive changes the current section to .data.
.double float
The .double directive generates a double-precision floating-point constant into the current
section. The .double directive is not valid for the .bss section.
.even
The .even directive aligns the current program counter (.) to an even boundary.
ext expression1, expression2, ..., expressionN
The .ext directive generates an 80387 80–bit floating point constant for each expression into
the current section. The .ext directive is not valid for the .bss section.
.file "string"
The .file directive creates a symbol table entry where string is the symbol name and
STT_FILE is the symbol table type. String specifes the name of the source fle associated with
the object fle
.float float
The .float directive generates a single-precision floating-point constant into the current
section. The .float directive is not valid in the .bss section.
.globl symbol1, symbol2, ..., symbolN
The .globl directive declares each symbol in the list to be global. Each symbol is either
defned externally or defned in the input fle and accessible in other fles. Default bindings
for the symbol are overridden. A global symbol defnition in one fle satisfes an undefned
reference to the same global symbol in another fle. Multiple defnitions of a defned global
symbol are not allowed. If a defned global symbol has more than one defnition, an error
occurs. The .globl directive only declares the symbol to be global in scope, it does not defne
the symbol.
.group group, section, #comdat
The .group directive adds section to a COMDAT group. Refer to “COMDAT Section” in
Linker and Libraries Guide for additional information about COMDAT.
.hidden symbol1, symbol2, ..., symbolN