Next: VAX-float, Up: Vax-Dependent [Contents][Index]
The Vax version of as
accepts any of the following options,
gives a warning message that the option was ignored and proceeds.
These options are for compatibility with scripts designed for other
people’s assemblers.
-D
(Debug)
-S
(Symbol Table)
-T
(Token Trace)
These are obsolete options used to debug old assemblers.
-d
(Displacement size for JUMPs)
This option expects a number following the ‘-d’. Like options that expect filenames, the number may immediately follow the ‘-d’ (old standard) or constitute the whole of the command line argument that follows ‘-d’ (GNU standard).
-V
(Virtualize Interpass Temporary File)
Some other assemblers use a temporary file. This option
commanded them to keep the information in active memory rather
than in a disk file. as
always does this, so this
option is redundant.
-J
(JUMPify Longer Branches)
Many 32-bit computers permit a variety of branch instructions to do the same job. Some of these instructions are short (and fast) but have a limited range; others are long (and slow) but can branch anywhere in virtual memory. Often there are 3 flavors of branch: short, medium and long. Some other assemblers would emit short and medium branches, unless told by this option to emit short and long branches.
-t
(Temporary File Directory)
Some other assemblers may use a temporary file, and this option
takes a filename being the directory to site the temporary
file. Since as
does not use a temporary disk file, this
option makes no difference. ‘-t’ needs exactly one
filename.
The Vax version of the assembler accepts additional options when compiled for VMS:
External symbol or section (used for global variables) names are not case sensitive on VAX/VMS and always mapped to upper case. This is contrary to the C language definition which explicitly distinguishes upper and lower case. To implement a standard conforming C compiler, names must be changed (mapped) to preserve the case information. The default mapping is to convert all lower case characters to uppercase and adding an underscore followed by a 6 digit hex value, representing a 24 digit binary value. The one digits in the binary value represent which characters are uppercase in the original symbol name.
The ‘-h n’ option determines how we map names. This takes
several values. No ‘-h’ switch at all allows case hacking as
described above. A value of zero (‘-h0’) implies names should be
upper case, and inhibits the case hack. A value of 2 (‘-h2’)
implies names should be all lower case, with no case hack. A value of 3
(‘-h3’) implies that case should be preserved. The value 1 is
unused. The -H
option directs as
to display
every mapped symbol during assembly.
Symbols whose names include a dollar sign ‘$’ are exceptions to the general name mapping. These symbols are normally only used to reference VMS library names. Such symbols are always mapped to upper case.
The ‘-+’ option causes as
to truncate any symbol
name larger than 31 characters. The ‘-+’ option also prevents some
code following the ‘_main’ symbol normally added to make the object
file compatible with Vax-11 "C".
This option is ignored for backward compatibility with as
version 1.x.
The ‘-H’ option causes as
to print every symbol
which was changed by case mapping.
Next: VAX-float, Up: Vax-Dependent [Contents][Index]