When the FLAG(HLASM) option is in effect, the Tachyon 390 Cross Assembler and Tachyon z/Assembler enforce most of the rules and restrictions of IBMs High Level Assembler release 6. When the FLAG(NOHLASM) option is in effect, the Tachyon 390 Cross Assembler and Tachyon z/Assembler remove some of the restrictions and enable the following extensions to the assembly language:
The following extended macro functions are supported:
The ABS function returns the absolute value of the operand. An overflow error will occur if the operand value is -2147483648.
The C2G function returns the result of converting the operand to a DBCS character string. The result will have a leading SO character and a trailing SI character.
The LOG10 function returns one less than the number of significant decimal digits required to represent the operand. For example, LOG10(120) will return 2. An error will occur if the operand value is not positive.
The LOG2 function returns one less than the number of significant bits required to represent the operand. For example, LOG2(5) will return 2. An error will occur if the operand value is not positive.
The POW function returns the value of the first operand raised to the power of the second operand. For example, POW(-5,3) will return -125. An error will occur if the second operand value is negative. Zero will be returned if the first operand is zero.
The REM function returns the remainder of the first operand divided by the second operand using a-b*(a/b) where a and b are the first and second operands respectively. For example, REM(5,3) will return 2. Overflow will not occur because 0 will always be returned if the second operand is 1 or -1.
CB and CW types (UTF-8 and UTF-32 character valuess) are supported.
F types can have explict length modifier values up to 16 bytes or 128 bits. FQ types are supported and are quadword aligned and 16 bytes long.
Z and P types with a sign of U (e.g. ZL3'U10') are supported and will have a sign nybble of X'F'.