Implementation Differences

There are a few other differences between IBM High Level Assembler and the Tachyon 390 Cross Assembler or the Tachyon z/Assembler, noted as follows:

Assembler Type Checking

The IBM High Level Assembler implementation of checking for the assembler types of GR32 vs. GR64 is practically useless, so the Tachyon assemblers treat the assembler types of GR32 and GR64 as if GR was specified. Likewise, CR32 and CR64 are treated as if CR was specified.

Expression Complexity

The IBM High Level Assembler has limits on the complexity of expressions, including the number of parentheses and operators. The Tachyon assemblers have no such limits, other than memory.

External Symbols

The external name in the label field of the CSECT, COM, DSECT, DXD, RSECT and START instructions, the operands of the ENTRY, EXTRN and WXTRN instructions, and the nominal values of Q-type, J-type, R-type and V-type constants may be more than eight characters long if there is a valid associated ALIAS instruction or if the OBJECT(XOBJ), OBJECT(GOFF) or OBJECT(ELF) option is set. ALIAS names may be up to 32767 characters long if the OBJECT(GOFF) or OBJECT(ELF) option is set. ALIAS names may also be up to 32767 characters long if the OBJECT(XOBJ) option is set and the TEST(LONG) option is not set. If OBJECT(XOBJ) is used with TEST(LONG), external symbol names may be up to 63 characters long. If the ADATA or OBJECT(GOFF,ADATA) options are set, external names will be limited to fit within the ADATA record size.

Floating Point Values

The Tachyon assemblers use the same algorithm to compute the assembled values of E, D and L constants as they do to compute those of EH, DH and LH values. The IBM High Level Assembler uses an older algorithm for E, D and L constants that does not produce as accurate results as the algorithm it uses for EH, DH and LH constants. For all known cases, the Tachyon assemblers generate the same results as produced by the IBM High Level Assembler for EH, DH and LH constants.

Forward Length Resolution

The IBM and Tachyon assemblers use different methods to resolve the lengths of data items that are dependent on values defined later in the assembly. As a result there are a few cases where the IBM and Tachyon assemblers are able to resolve forward length references that the other assembler cannot.

Look-Ahead

The first definition encountered during look-ahead is used for the purposes of resolving the reference, even if the definition would not have been generated due to conditional assembly instructions.

Sequence Symbols

Sequence symbols in open code may only be referenced by AIF and AGO instructions in the same source file or copy member.


Frames No Frames Previous Next Contents
Introduction Setup Running Options Macros Translation Compatibility Messages
© Copyright 1999-2005, Tachyon Software® LLC.
Last modified on October 1, 2005