.align pseudo-op
Purpose
Advances the current location counter until a boundary specified by the Number parameter is reached.
Syntax
Description
The .align pseudo-op is normally used in a control section (csect) that contains data.
The Number parameter specifies the log base 2 (binary logarithm) for the
required alignment of the location counter. For example, if you specify 2, the
.align pseudo-op requests word alignment, and if you specify 3, the
.align pseudo-op requests double word alignment.
If the Number2 parameter is specified, alignment occurs only if the location
is within Number2 bytes of the required alignment boundary. This is most useful before a
prefixed instruction to prevent the instruction from crossing a 64-byte boundary.
If the Number2 parameter is not specified, the assembler aligns the location counter by inserting bytes. In most cases, 0s are inserted, but if the current csect has a storage-mapping class of PR or GL, no-op instructions are inserted. For more information about storage-mapping classes, see the .csect pseudo-op.
Parameters
| Item | Description |
|---|---|
| Number | Specifies an absolute expression that evaluates to an integer value from 0 to 12, inclusive. The value indicates the log base 2 of the desired alignment. For example, an alignment of 8 (a doubleword) would be represented by an integer value of 3; an alignment of 4096 (one page) would be represented by an integer value of 12. |
Examples
-
.csect progdata[RW] .byte 1 # Location counter now at odd number .align 1 # Location counter is now at the next # halfword boundary. .byte 3,4 . . . .align 2 # Insure that the label cont # and the .long pseudo-op are # aligned on a full word # boundary. cont: .long 5004381 .csect [PR] … .align 6,8 # Align the program counter if the # current location counter is less # than 8 bytes from a 64-bit byte # boundary plw r3,0x10000(r4) # Load a word into r3