for the ESA/390 supports all of the standard ELF/SVR4 assembler directives that are documented in the main part of this documentation. Several additional directives are supported in order to implement the ESA/390 addressing model. The most important of these are
.usingdirective in the same section as the current section.
.stringetc. emit ascii strings by default.
asdirective .equ can be used to the same effect.
.usingmust have been previously specified in the same section.
This assembler allows two
directives to be simultaneously outstanding, one in the
section, and one in another section (typically, the
section). This feature allows dynamically loaded objects to be implemented in a relatively straightforward way. A
directive must always be specified in the
section; this will specify the base register that will be used for branches in the
section. A second
may be specified in another section; this will specify the base register that is used for non-label address literals. When a second
is specified, then the subsequent
must be put in the same section; otherwise an error will result.
Thus, for example, the following code uses
to address branch targets and
to address the literal pool, which has been written to the
section. The is, the constants
will all appear in the
.data .using LITPOOL,r4 .text BASR r3,0 .using *,r3 B START .long LITPOOL START: L r4,4(,r3) L r15,=A(some_routine) LTR r15,r15 BNE LABEL AH r0,=H'42' LABEL: ME r6,=E'3.1416' .data LITPOOL: .ltorg
Note that this dual-
directive semantics extends and is not compatible with HLASM semantics. Note that this assembler directive does not support the full range of HLASM semantics.