Assembler language argument values

In general, an argument can be either the address of the data or the data itself (in assembler language terms, either a relocatable expression or an absolute expression).

A relocatable expression must not contain unmatched brackets (outside quotation marks) or unmatched quotation marks (apart from length-attribute references). If this rule is obeyed, any expression can be used, including literal constants, such as =AL2(100), forms such as 20(0,R11), and forms that use the macro-replacement facilities.

An absolute expression must be a single term that is either a length-attribute reference, or a self-defining constant.

Care must be taken with equated symbols, which should be used only when referring to registers (pointer references). If an equated symbol is used for a length, for example, it is treated as the address of the length and an unpredictable error occurs.

The argument values can be replaced as follows:
data-value
Can be replaced by a relocatable expression that is an assembler language reference to data of the correct type for the argument, or by a constant of the correct type for the argument.
data-ref
Can be replaced by a relocatable expression that is an assembler language reference to data of the correct type for the argument.
data-area
Can be replaced by a relocatable expression that is an assembler language reference to data with a type of halfword (DS H), fullword (DS F), or character string (CLn).
ptr-ref
Can be replaced by any absolute expression that is an assembler language reference to a register.
cpsm-token
Can be replaced by a relocatable expression that is an assembler language reference to data with a type of fullword (DS F).