The Motorola 680x0 version of
as has a few machine
You can use the `-l' option to shorten the size of references to undefined
symbols. If you do not use the `-l' option, references to undefined
symbols are wide enough for a full
long (32 bits). (Since
as cannot know where these symbols end up,
only allocate space for the linker to fill in later. Since
does not know how far away these symbols are, it allocates as much space as it
can.) If you use this option, the references are only one word wide (16 bits).
This may be useful if you want the object file to be as small as possible, and
you know that the relevant symbols are always less than 17 bits away.
For some configurations, especially those where the compiler normally does not prepend an underscore to the names of user variables, the assembler requires a `%' before any use of a register name. This is intended to let the assembler distinguish between C variables and functions named `a0' through `a7', and so on. The `%' is always accepted, but is not required for certain configurations, notably `sun3'. The `--register-prefix-optional' option may be used to permit omitting the `%' even for configurations for which it is normally required. If this is done, it will generally be impossible to refer to C variables and functions with the same names as register names.
Normally the character `|' is treated as a comment character, which means that it can not be used in expressions. The `--bitwise-or' option turns `|' into a normal character. In this mode, you must either use C style comments, or start comments with a `#' character at the beginning of a line.
If you use an addressing mode with a base register without specifying
as will normally use the full 32 bit value.
For example, the addressing mode `%a0@(%d0)' is equivalent to
`%a0@(%d0:l)'. You may use the `--base-size-default-16'
option to tell
as to default to using the 16 bit value.
In this case, `%a0@(%d0)' is equivalent to `%a0@(%d0:w)'.
You may use the `--base-size-default-32' option to restore the
If you use an addressing mode with a displacement, and the value of the
displacement is not known,
as will normally assume that
the value is 32 bits. For example, if the symbol `disp' has not
as will assemble the addressing mode
`%a0@(disp,%d0)' as though `disp' is a 32 bit value. You may
use the `--disp-size-default-16' option to tell
to instead assume that the displacement is 16 bits. In this case,
as will assemble `%a0@(disp,%d0)' as though
`disp' is a 16 bit value. You may use the
`--disp-size-default-32' option to restore the default behaviour.
as can assemble code for several different members of the
Motorola 680x0 family. The default depends upon how
was configured when it was built; normally, the default is to assemble
code for the 68020 microprocessor. The following options may be used to
change the default. These options control which instructions and
addressing modes are permitted. The members of the 680x0 family are
very similar. For detailed information about the differences, see the
Go to the first, previous, next, last section, table of contents.