The type attribute has a value of a single alphabetic character that shows the type of data represented by:
The type attribute can change during an assembly. The lookahead search might assign one attribute, whereas the symbol table at the end of the assembly might display another.
The type attribute reference can be used in the operand field of a SETC instruction or as one of the values used for comparison in the operand field of a SETB or AIF instruction.
The type attribute can also be specified outside conditional assembly instructions. Then, the type attribute value is not used for conditional assembly processing, but is used as a value at assembly time.
The following letters are used for the type attribute of data represented by ordinary symbols and outer macro instruction operands that are symbols that name DC or DS statements.
When a literal is specified as the name field on a macro call instruction, and if the literal has previously been used in a machine instruction, the type attribute of the literal is the same as for data represented by ordinary symbols or outer macro instructions operands.
The following letters are used for the type attribute of data represented by ordinary symbols (and outer macro instruction operands that are symbols) that name statements other than DC or DS statements, or that appear in the operand field of an EXTRN or WXTRN statement:
The following letter is used for the type attribute of data represented by inner and outer macro instruction operands only:
The following attribute is used for the type attribute of the value of variable symbols:
The following letter is used for symbols or macro instruction operands that cannot be assigned any of the above letters:
The common use of the U type attribute is to describe a valid symbol that has not been assigned any of the type attribute values described above. If the assembler is not able to determine what the named symbol represents, it also assigns the U type attribute. Thus, the U type attribute can mean undefined, or unknown, or unassigned at the time of the reference. Consider the following macro definition:
Name Operation Operand
macro
MAC1 &op1,&op2
&A setc T'&op1
&B setc T'&op2
DC C'&A' DC containing type attribute for op1
DC C'&B' DC containing type attribute for op2
mendWhen the macro MAC1 is called in Figure 36, neither of the operands has previously been defined, however GOOD_SYMBOL is a valid symbol name, whereas ?BAD_SYMBOL? is not a valid symbol name. The type attribute for both operands is U, meaning GOOD_SYMBOL is undefined, and ?BAD_SYMBOL? is unknown.
000000 00000 00004 8 a csect
9 mac1 GOOD_SYMBOL,?BAD_SYMBOL?
000000 E4 10+ DC C'U' DC containing type attribute for op1
000001 E4 11+ DC C'U' DC containing type attribute for op2
12 endWhen the macro MAC1 is called in Figure 37, GOOD_SYMBOL is a valid symbol name, and has been defined in the DC instruction at statement 12. ?BAD_SYMBOL? is a not valid symbol name, and the assembler issues an error message at statement 13. The type attribute for GOOD_SYMBOL is C, meaning the symbol represents a character constant. The type attribute for ?BAD_SYMBOL? is U, meaning the type is unknown.
000000 00000 00006 8 a csect
9 mac1 GOOD_SYMBOL,?BAD_SYMBOL?
000000 C3 10+ DC C'C' DC containing type attribute for op1
000001 E4 11+ DC C'U' DC containing type attribute for op2
000002 A9 12 GOOD_SYMBOL dc cl1'z'
000003 A9 13 ?BAD_SYMBOL? dc cl1'z'
** ASMA147E Symbol too long, or first character not a letter - ?BAD_SYMBOL?
14 endThe type attribute value U, meaning undefined, unknown, or unassigned, is assigned to the following:
A DC A(*)then the symbol A has type attribute 'A' in conditional assembly instructions. However, if this statement is followed by
DC A(T'A) Generates X'000000C1'the generated data will be the same as if you had written
DC A(C'A') Generates X'000000C1'
[ Top of Page | Previous Page | Next Page | Contents | Index ]