HLASM General Information
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Revised assembler instructions

HLASM General Information
GC26-4943-06

Several assembler instructions used in earlier assemblers have been extended in High Level Assembler.

CNOP instruction:
Symbols in the operand field of a CNOP instruction do not need to be previously defined.

The operands of the CNOP instruction are extended to allow for any boundary within a quadword to be specified. Valid values for the first operand are the even numbers from 0 to 14 inclusive, while the values for the second operand are 4, 8, or 16. Note that any present use of CNOP may generate different object code but the new object code will not change the execution.

COPY instruction:
Any number of nestings (COPY instructions within code that has been brought into your program by another COPY instruction) is permitted. However, recursive COPY instructions are not permitted.
A variable symbol that has been assigned a valid ordinary symbol may be used as the operand of a COPY instruction in open code:
 &VAR      SETC 'LIBMEM'
          COPY &VAR
+         COPY LIBMEM                          Generated Statement
DC instruction:
The DC instruction has been enhanced to cater for the new binary and decimal floating-point numbers, Unicode character constants, and doubleword fixed-point and A-type address constants. As well, the J-type, Q-type and R-type address constants have been added.

A new data type, CA, has been added to indicate an ASCII character constant type to be represented. This constant is not modified by the TRANSLATE option. The CE data type generates an EBCDIC constant that is not modified by the TRANSLATE option.

A new subfield has been added for the program type of symbol.

DROP instruction:
The DROP instruction now lets you end the domain of labeled USINGs and labeled dependent USINGs. See Labeled USINGs and qualified symbols and Dependent USINGs.
DS instruction:
A new subfield has been added for the program type of symbol.
DXD instruction:
The DXD instruction now aligns external dummy sections to the most restrictive alignment of the specified operands (instead of that of the first operand).
EQU instruction:
Symbols appearing in the first operand of the EQU instruction do not need to be previously defined. In the following example, both WIDTH and LENGTH can be defined later in the source code:
Name     Operation      Operand

VAL      EQU            40-WIDTH+LENGTH

Two new operands are provided for the EQU instruction, a program-type operand, and an assembler-type operand.

ISEQ instruction:
Sequence checking of any column on input records is allowed.
OPSYN instruction:
You can code OPSYN instructions anywhere in your source module.
ORG instruction:
Two new operands are provided for the ORG statement that will specify the boundary and offset to be used to set the location counter.

The BOUNDARY operand is an absolute expression that must be a power of 2 with a range from 8 (doubleword) to 4096 (page).

The OFFSET operand is any absolute expression.

If BOUNDARY and/or OFFSET are used, then the resultant location counter will be calculated by rounding the expression up to the next higher BOUNDARY and then adding the OFFSET value.

POP instruction:
An additional operand, NOPRINT, can be specified with the POP instruction to cause the assembler to suppress the printing of the specified POP statement. The operand ACONTROL saves the ACONTROL status.
PRINT instruction:
Seven additional operands can be specified with the PRINT instruction. They are:
MCALL | NOMCALL
The MCALL operand instructs the assembler to print nested macro call instructions.

The NOMCALL operand suppresses the printing of nested macro call instructions.

MSOURCE | NOMSOURCE
The MSOURCE operand causes the assembler to print the source statements generated during macro processing, as well as the assembled addresses and generated object code of the statements.

The NOMSOURCE operand suppresses the printing of the generated source statements, but does not suppress the printing of the assembled addresses and generated object code.

UHEAD | NOUHEAD
The UHEAD operand causes the assembler to print a summary of active USINGs following the TITLE line on each page of the source and object program section of the assembler listing.

The NOUHEAD operand suppresses the printing of this summary.

NOPRINT
The NOPRINT operand causes the assembler to suppress the printing of the PRINT statement that is specified.

The assembler has changed the way generated object code is printed in the assembler listing when the PRINT NOGEN instruction is used. Now the object code for the first generated instruction, or the first 8 bytes of generated data is printed in the object code column of the listing on the same line as the macro call instruction. The DC, DS, DXD, and CXD instructions can cause the assembler to generate zeros as alignment data. With PRINT NOGEN the generated alignment data is not printed in the listing.

PUSH instruction:
An additional operand, NOPRINT, can be specified with the PUSH instruction to cause the assembler to suppress the printing of the specified PUSH statement. The operand ACONTROL restores the ACONTROL status.
USING statements:
Labeled USINGs and dependent USINGs provide you with enhanced control over the resolution of symbolic expressions into base-displacement form with specific base registers. Dependent USINGs can be labeled or unlabeled.

The end of range parameter lets you specify a range for the USING statement, rather than accepting the default range. See Labeled USINGs and qualified symbols and Dependent USINGs.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014