.align pseudo-op
Zweck
Verschiebt den aktuellen Positionszähler, bis eine durch den Parameter Zahl angegebene Grenze erreicht ist.
Syntax
Beschreibung
Die Pseudo-Option .align wird normalerweise in einem Kontrollabschnitt (csect) verwendet, der Daten enthält.
Der Parameter Number gibt die logarithmische Basis 2 (binärer Logarithmus) für die erforderliche Ausrichtung des Standortzählers an. Wenn Sie z. B. 2 angeben, fordert der Pseudo-Operator '
.align eine Wortausrichtung an, und wenn Sie 3 angeben, fordert der Pseudo-Operator ' .align eine Doppelwortausrichtung an.
Wenn der Parameter Number2 angegeben wird, erfolgt die Ausrichtung nur, wenn die Position innerhalb von Number2 Bytes der erforderlichen Ausrichtungsgrenze liegt. Dies ist vor allem vor einem vorangestellten Befehl nützlich, um zu verhindern, dass der Befehl eine 64-Byte-Grenze überschreitet.
Wenn der Parameter Number2 nicht angegeben wird, richtet der Assembler den Positionszähler durch Einfügen von Bytes aus. In den meisten Fällen werden 0s eingefügt, aber wenn der aktuelle csect eine Speicherzuordnungsklasse von PR oder GL hat, werden Anweisungen ohne Operationen eingefügt. Weitere Informationen zu Speicherzuordnungsklassen finden Sie unter .csekt pseudo-op.
Parameter
| Element | Beschreibung |
|---|---|
| Nummer | Gibt einen absoluten Ausdruck an, der einen ganzzahligen Wert von 0 bis 12 (einschließlich) ergibt. Der Wert gibt die Protokollbasis 2 der gewünschten Ausrichtung an. Zum Beispiel würde eine Ausrichtung von 8 (ein Doppelwort) durch einen Integer-Wert von 3 dargestellt werden; eine Ausrichtung von 4096 (eine Seite) würde durch einen Integer-Wert von 12 dargestellt werden. |
Beispiele
.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