Assembler language argument values

In assembler language, an argument calling for a data-area, data-value, or CVDA can be any relocatable expression that refers to data of the correct type, including register forms such as 20(0,11), and forms that use the macro-replacement facilities.

You can use literal constants, such as =F'1' or =AL2(100), for data-values and sender CVDAs, but you should not use them, or any other storage that is not to be modified, for receiver arguments.

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

Take care with equated symbols; you should use them only to refer to registers (pointer references). For example, if you use an equated symbol for a length, it is treated as the address of the length and an unpredictable error occurs.

Pointer arguments are conveyed through a general register in CICS® assembler programs and therefore they must be absolute expressions. For a pointer-value, you specify the number of the register that contains the address of the data (loading the register first if it does not already point to it). For a pointer-reference, you specify the register in which CICS is to return the address of the data. For example, after execution of the following code, the address of the task list is in register 9:
EXEC CICS INQUIRE TASK LIST
          LISTSIZE(LISTLEN)
          SET (9)