Hi Ian,
> From the error messages I guess the problem is that the assembler
> doesn't like symbols that start with ".1". Do you know what names the
> assembler permits?
The x86 Assembly Language Reference Manual states:
2.1.2.1 Identifiers
An identifier is an arbitrarily-long sequence of letters and digits. The
first character must be a letter; the underscore (_) (ASCII 0x5F) and
the period (.) (ASCII 0x2E) are considered to be letters. Case is
significant: uppercase and lowercase letters are different.
Contrary to that, /bin/as won't assemble
.globl .1
The SPARC Assembly Language Reference Manual states this instead:
1.3.6 Symbol Names
The syntax for a symbol name is:
{ letter | _ | $ | . } { letter | _ | $ | . | digit }*
In the above syntax:
* Uppercase and lowercase letters are distinct; the underscore ( _ ),
dollar sign ($), and dot ( . ) are treated as alphabetic characters.
* Symbol names that begin with a dot ( . ) are assumed to be local
symbols. To simplify debugging, avoid using this type of symbol name
in hand-coded assembly language routines.
* The symbol dot ( . ) is predefined and always refers to the address of
the beginning of the current assembly language statement.
* External variable names beginning with the underscore character are
reserved by the ANSI C Standard. Do not begin these names with the
underscore; otherwise, the program will not conform to ANSI C and
unpredictable behavior may result.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University