Programming in Assembler

Start of changeCICS® supports assembler programs that have been compiled by the supported compilers listed in the CICS Release Guide. All assembler programs are executed under the runtime support provided by Language Environment®.End of change

Note the following Assembler language programming considerations:

Language restrictions
  1. The following instructions cannot be used in an assembler language program that is to be used as a CICS application program:
    COM
    Identify blank common control section.
    ICTL
    Input format control.
    OPSYN
    Equate operation code.

     

  2. Start of changeThe following additional restrictions apply if an assembler language program is to be translated with the LEASM option, see LEASM.
    • Register 2 cannot be used as a code base register.
    • Register 12 is reserved by Language Environment to point to the Language Environment common anchor area (CAA) and so cannot be used at all by the program without being saved and restored as appropriate.
    • Register 13 must be used as the one and only working storage base register.
    • The program cannot be a Global User Exit program (GLUE) or a Task-Related User Exit program (TRUE).
    • The program must not use, or depend on, any AMODE(24) code.
    End of change
BAKR

When using BAKR instructions (branch and stack) to provide linkage between assembler programs, take care that the linked-to program does not issue EXEC CICS requests. If CICS receives control and performs a task switch before the linked-to program returns by a PR instruction (program return), then other tasks might be dispatched and issue further BAKR / PR calls. These modify the linkage-stack and result in the wrong environment being restored when the original task issues its PR instruction.

Working storage

Working storage is allocated either above or below the 16MB line, according to the value of the DATALOCATION parameter on the PROGRAM definition in the CSD.

HANDLE ABEND LABEL
CICS does not allow the use of HANDLE ABEND LABEL in Assembler programs that do not use DFHEIENT and DFHEIRET. Assembler programs that use the Language Environment stub CEESTART should either use HANDLE ABEND PROGRAM or a Language Environment service such as CEEHDLR.
31-bit addressing

The following restriction applies to an assembler language application program executing in 31-bit mode:

MVS™ restrictions

The following restrictions apply to an assembler language application program that uses access registers to exploit the extended addressability of ESA/370 processors:

For more guidance information about using access registers, see the z/OS®: MVS Programming: Extended Addressability Guide.

Start of change64-bit registersEnd of change
Start of change

The following restriction applies to an assembler language application program that uses 64-bit registers to exploit 64-bit addressing mode or 64-bit binary operations:

For more guidance information about using 64-bit addressing mode and 64-bit binary operations, see the z/OS: MVS Programming: Assembler Services Guide.

End of change
[[ Contents Previous Page | Next Page Index ]]