Identify Global Symbols
.global/.def/.ref
4-51
Assembler Directives
Syntax
.global
symbol
1
[, ... , symbol
n
]
.def
symbol
1
[,
... , symbol
n
]
.ref
symbol
1
[,
... , symbol
n
]
Description
The .global, .def, and .ref directives identify global symbols, which are de-
fined externally or can be referenced externally.
The .def directive identifies a symbol that is defined in the current module and
can be accessed by other files. The assembler places this symbol in the sym-
bol table.
The .ref directive identifies a symbol that is used in the current module but de-
fined in another module. The linker resolves this symbol’s definition at link
time.
The .global directive acts as a .ref or a .def, as needed.
A global sy
mbol is defined in the same manner as any other symbol; that is,
it appears as a label or is defined by the .set, .bss, or .usect directive. As with
all symbols, if a global symbol is defined more than once, the linker issues a
multiple-definition error. .ref always creates a symbol table entry for a symbol,
whether the module uses the symbol or not; .global, however, creates an entry
only if the module actually uses the symbol.
A symbol may be declared global for two reasons:
-
If the symbol is
not defined in the current module (including macro, copy,
and include files), the .global or .ref directive tells the assembler that the
symbol is defined in an external module. This prevents the assembler from
issuing an unresolved reference error. At link time, the linker looks for the
symbol’s definition in other modules.
-
If the symbol
is defined in the current module, the .global or .def directive
declares that the symbol and its definition can be used externally by other
modules. These types of references are resolved at link time.
Example
This example shows four files:
file1.lst and file3.lst are equivalent. Both files define the symbol Init and make
it available to other modules; both files use the external symbols x, y, and z.
file1.lst uses the .global directive to identify these global symbols; file3.lst uses
.ref and .def to identify the symbols.
file2.lst and file4.lst are equivalent. Both files define the symbols x, y, and z
and make them available to other modules; both files use the external symbol
Init. file2.lst uses the .global directive to identify these global symbols; file4.lst
uses .ref and .def to identify the symbols.
Содержание TMS320C54x
Страница 38: ......
Страница 39: ......
Страница 40: ......
Страница 41: ......
Страница 42: ......
Страница 43: ......
Страница 44: ......
Страница 45: ......
Страница 46: ......
Страница 47: ......
Страница 48: ......
Страница 49: ......
Страница 50: ......
Страница 51: ......
Страница 52: ......
Страница 53: ......
Страница 54: ......
Страница 55: ......
Страница 56: ......
Страница 57: ......
Страница 58: ......
Страница 59: ......
Страница 60: ......
Страница 61: ......
Страница 62: ......
Страница 276: ......
Страница 277: ......
Страница 278: ......
Страница 279: ......
Страница 280: ......
Страница 281: ......
Страница 282: ......
Страница 283: ......
Страница 284: ......
Страница 285: ......
Страница 286: ......
Страница 287: ......
Страница 288: ......
Страница 289: ......
Страница 290: ......
Страница 291: ......
Страница 292: ......
Страница 293: ......
Страница 294: ......
Страница 295: ......
Страница 296: ......
Страница 297: ......
Страница 298: ......
Страница 299: ......
Страница 300: ......
Страница 301: ......
Страница 302: ......