22
Section 1: General Information
TI-89 / TI-92 Plus Sierra C Assembler Reference Manual
Not for Distribution
Beta Version February 2, 2001
1.4.8.1. Symbol
Names
The symbol name resides either within the 18 byte symbol table entry itself or in
a string table at the end of the object file. The first eight bytes of the symbol table
entry are a union of an eight byte character array and two longs. If the symbol
name is eight or fewer characters in length, the symbol name (null padded) is
stored in the first eight bytes of the symbol table entry. If the symbol name is
longer than eight characters, the entire null-terminated symbol name is stored in
the string table. When the symbol name is stored in the string table, the first four
bytes of the symbol table entry are zero and the second four bytes contain the
offset (relative to the beginning of the string table) of the name in the string table.
Since there cannot be a symbol with a null name, the zeroes in the first four
bytes distinguish a symbol table entry with an offset into the string table from a
symbol table entry with a name in the first eight bytes.
1.4.8.2. Storage
Class
The storage class field is assigned one of the values described in Table 1.17.
The mnemonics listed in the table are defined in file_fmt.txt.
All the storage classes that appear in the object file except for C_ALIAS are
generated by the assemblers, asm68 and asm68k. The storage class C_ALIAS
is generated by the linker, link68 (-P flag not specified), when it removes
duplicate structure, union and enumeration definitions and places alias entries in
their places.
Note that not all the storage classes listed in Table 1.17 appear in the object file.
Some of the storage classes such as C_EFCN, C_ARRAY, C_SUE, and
C_SKIP are used only internally by the compiler and assemblers.