Example 1
The following example shows the ALIGN_DATA option:
.PSECT A, NOEXE
.ENABLE ALIGN_DATA ; Align on natural
; natural boundaries
A: .BYTE 1 ;
B: .QUAD 1000 ; B is allocated at
; a natural boundary -
; specifically at A + 7
.DISABLE ALIGN_DATA ;
C: .BYTE 2 ;
D: .QUAD 1001 ; D is allocated at
; an unaligned boundary -
; specifically C + 1
Example 2
The following example shows the GLOBAL option disabled:
.DISABLE GLOBAL
.ADDRESS X ; Assembler issues a warning
.END
Example 3
The following example shows the LOCAL_BLOCK option enabled:
.ENABLE LOCAL_BLOCK
.PSECT A,NOEXE
A1::
5$: .PROCEDURE_DESCRIPTOR PROC_1 ; Temporary label 5$
.blkb 32
A2::
.address 5$ ; By default the declaration
; of A2 would have ended the
; temporary label block and
; made this reference to 5$
; illegal. However, this default
; behavior has been overridden
; by the use of .ENABLE LOCAL_BLOCK.
.DISABLE LOCAL_BLOCK
.END
Example 4
The following example shows an unoptimized and optimized list
of instructions with the SCHEDULE and PEEPHOLE options enabled:
.ENABLE PEEPHOLE,SCHEDULE
.psect A,EXE,QUAD ; unoptimized
TRAPB
A::ADDF F1,F2,F3
ADDF F4,F5,F6
ADDL R1,R2,R3
ADDL R4,R5,R6
This example shows the optimized list of instructions:
.ENABLE PEEPHOLE,SCHEDULE
.psect A,EXE,QUAD ; optimized
A::ADDF F1,F2,F3
ADDL R1,R2,R3
ADDF F4,F5,F6
ADDL R4,R5,R6
The following example shows a repeat block that initializes
a block of 1000 longwords to the values of 0 through 999. The
.DISABLE PREPROCESSOR_OUTPUT directive suppresses from the
preprocessor output file those statements that are incompatible
with the OSF/1 Assembler.
.DISABLE PREPROCESSOR_OUTPUT
I=0
.REPEAT 1000
.ENABLE PREPROCESSOR_OUTPUT
.LONG %INTEGER(I)
.DISABLE PREPROCESSOR_OUTPUT
I = I + 1
.ENDR