6.3.2.6 Symbol Table

The next section in the map file alphabetically lists the global symbols that the program defines. This section has the heading:

Symbol Table

The symbols listed in this table are:

  • Global assembly labels
  • Global EQU/SET assembler directive labels
  • Linker-defined symbols

Assembly symbols are made global via the GLOBAL assembler directive, see 4.9.29 Global Directive for more information.

Linker-defined symbols act like EQU directives. However, they are defined by the linker during the link process, and no definition for them appears in any source or intermediate file (see 5.4 Linker-Defined Symbols).

Each symbol is shown with the psect in which it is defined and the value (usually an address) it has been assigned. There is not any information encoded into a symbol to indicate whether it represents code or data – nor in which memory space it resides.

If the psect of a symbol is shown as (abs), this implies that the symbol is not directly associated with a psect. Such is the case for absolute C variables, or any symbols that are defined using an EQU directive in assembly.

Note that a symbol table is also shown in each assembler list file. These differ to that shown in the map file as they also list local symbols and they only show symbols defined in the corresponding module.