HLASM Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Access Register type checking

HLASM Programmer's Guide
SC26-4941-06

The following examples use the Load Access Multiple (LAM) instruction and are only concerned with the access register fields. The first and second operands are register fields requiring a resolved absolute value of 0 through to 15. This value specifies an Access Register (AR).

Each unresolved access register field is an expression composed of one or more terms. The assembler checks only the first term:
  • If the term is not a symbol, no more checking is performed.
  • If the assembler type of the symbol is AR, no more checking is performed
  • If the assembler type of the symbol is assigned but is not AR, the assembler issues a warning message (severity 4) about a type checking conflict.
  • If the assembler type of the symbol is not assigned, and the flag shows that at least one instance of an EQU statement with AR has been encountered, the assembler issues an informational message (severity 0) about a possible type checking conflict.
  • If the assembler type of the symbol is not assigned,and the flag shows that no instances of an EQU statement with AR have been encountered, no more checking is performed.
Figure 1 shows an example of Access Register checking, with warning messages about incompatible symbol types, and an informational message about a symbol not assigned an assembler type due to the existence of an EQU statement with AR in the source code.
Figure 1. Access Register type checking with AR activated
00000000 9AEC D00C               0000000C     30          LAM   14,12,12(13)
00000004 9AEC D00C               0000000C     31          LAM   A14,A12,12(R13)
00000008 9AEC D00C               0000000C     32          LAM   R14,R12,12(R13)
** ASMA323W Symbol 'R14' has incompatible type with access register field
** ASMA323W Symbol 'R12' has incompatible type with access register field
0000000C 9AEC D00C               0000000C     33          LAM   AR14,A12,12(R13)
** ASMA324I Symbol 'AR14' may have incompatible type with access register field
                                              34 *
                        0000000C              35 A12      EQU   12,,,,AR
                        0000000E              36 A14      EQU   14,,,,AR
                                              37 *
                        0000000C              38 R12      EQU   12,,,,GR
                        0000000D              39 R13      EQU   13,,,,GR
                        0000000E              40 R14      EQU   14,,,,GR
                                              41 *
                        0000000C              42 AR12     EQU   12
                        0000000E              43 AR14     EQU   14
Figure 2 shows an example of Access Register checking, with warning messages of incompatible symbol types, and tolerance of symbols not assigned an assembler type due to the lack of an EQU statement with AR in the source code.
Figure 2. Access Register type checking with AR inactive
00000000 9AEC D00C               0000000C     30          LAM   14,12,12(13)
00000004 9AEC D00C               0000000C     31          LAM   A14,A12,12(R13)
00000008 9AEC D00C               0000000C     32          LAM   R14,R12,12(R13)
** ASMA323W Symbol R14 has incompatible type with access register field
** ASMA323W Symbol R12 has incompatible type with access register field
0000000C 9AEC D00C               0000000C     33          LAM   AR14,A12,12(R13)
                                              34 *
                        0000000C              35 A12      EQU   12
                        0000000E              36 A14      EQU   14
                                              37 *
                        0000000C              38 R12      EQU   12,,,,GR
                        0000000D              39 R13      EQU   13,,,,GR
                        0000000E              40 R14      EQU   14,,,,GR
                                              41 *
                        0000000C              42 AR12     EQU   12
                        0000000E              43 AR14     EQU   14

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014