|
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 activated00000000 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 inactive00000000 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
|