Chapter 6. Symbols
37
They can also be distinguished from ordinary local labels by their transformed name which uses
ASCII character
\001
(control A) as the magic character to distinguish them from ordinary labels.
Thus the 5th defintion of
6$
is named
L6C A5
.
6.4. The Special Dot Symbol
The special symbol
.
refers to the current address that
as
is assembling into. Thus, the expression
melvin: .long .
defines
melvin
to contain its own address. Assigning a value to
.
is treated the
same as a
.org
directive. Thus, the expression
.=.+4
is the same as saying
.space 4
.
6.5. Symbol Attributes
Every symbol has, as well as its name, the attributes "Value" and "Type". Depending on output format,
symbols can also have auxiliary attributes.
If you use a symbol without defining it,
as
assumes zero for all these attributes, and probably won't
warn you. This makes the symbol an externally defined symbol, which is generally what you would
want.
6.5.1. Value
The value of a symbol is (usually) 32 bits. For a symbol which labels a location in the text, data, bss
or absolute sections the value is the number of addresses from the start of that section to the label.
Naturally for text, data and bss sections the value of a symbol changes as
ld
changes section base
addresses during linking. Absolute symbols' values do not change during linking: that is why they are
called absolute.
The value of an undefined symbol is treated in a special way. If it is 0 then the symbol is not defined
in this assembler source file, and
ld
tries to determine its value from other files linked into the same
program. You make this kind of symbol simply by mentioning a symbol name without defining it. A
non zero value represents a
.comm
common declaration. The value is how much common storage to
reserve, in bytes (addresses). The symbol refers to the first address of the allocated storage.
6.5.2. Type
The type attribute of a symbol contains relocation (section) information, any flag settings indicating
that a symbol is external, and (optionally), other information for linkers and debuggers. The exact
format depends on the object code output format in use.
6.5.3. Symbol Attributes:
a.out
6.5.3.1. Descriptor
This is an arbitrary 16 bit value. You may establish a symbol's descriptor value by using a
.desc
statement (Section 8.21
.desc symbol, abs expression
). A descriptor value means nothing to
as
.






footer




 

 

 

 

 Home | About Us | Network | Services | Support | FAQ | Control Panel | Order Online | Sitemap | Contact

canadian web hosting

 

Our partners: PHP: Hypertext Preprocessor Best Web Hosting Java Web Hosting Inexpensive Web Hosting  Jsp Web Hosting

Cheapest Web Hosting Jsp Hosting Cheap Hosting

Visionwebhosting.net Business web hosting division of Web Design Plus. All rights reserved