contain a label (which is identified by a colon), and, in addition to the
label, an assembler mnemonic, a macro, or a control command (see section <ref
id="control-commands" name="Control Commands"> for supported control
-commands). Alternatively, the line may contain a symbol definition using the
-'=' token. Everything after a semicolon is handled as a comment (that is, it
-is ignored).
+commands). Alternatively, the line may contain a symbol definition using
+the '=' token. Everything after a semicolon is handled as a comment (that is,
+it is ignored).
Here are some examples for valid input lines:
<sect1>Unnamed labels<p>
-If you really want to write messy code, there are also unnamed
-labels. These labels do not have a name (you guessed that already,
-didn't you?). A colon is used to mark the absence of the name.
+If you really want to write messy code, there are also unnamed labels. These
+labels do not have a name (you guessed that already, didn't you?). A colon is
+used to mark the absence of the name.
-Unnamed labels may be accessed by using the colon plus several minus
-or plus characters as a label designator. Using the '-' characters
-will create a back reference (use the n'th label backwards), using
-'+' will create a forward reference (use the n'th label in forward
-direction). An example will help to understand this:
+Unnamed labels may be accessed by using the colon plus several minus or plus
+characters as a label designator. Using the '-' characters will create a back
+reference (use the n'th label backwards), using '+' will create a forward
+reference (use the n'th label in forward direction). An example will help to
+understand this:
<tscreen><verb>
: lda (ptr1),y ; #1
are in global scope.
-<sect1>A special scope: cheap locals<p>
+<sect1>Cheap locals<p>
A special scope is the scope for cheap local symbols. It lasts from one non
local symbol to the next one, without any provisions made by the programmer.
<sect1><tt>.SMART</tt><label id=".SMART"><p>
- Switch on or off smart mode. The command must be followed by a '+' or
- '-' character to switch the option on or off respectively. The default
- is off (that is, the assembler doesn't try to be smart), but this
- default may be changed by the -s switch on the command line.
+ Switch on or off smart mode. The command must be followed by a '+' or '-'
+ character to switch the option on or off respectively. The default is off
+ (that is, the assembler doesn't try to be smart), but this default may be
+ changed by the -s switch on the command line.
In smart mode the assembler will do the following:
unorthogonal). Flexible array members cannot be initialized...
<itemize>
- <item> ...when defining an array of structs with flexible members.
- <item> ...if such a struct is a member field of another struct which
- is not the last field.
++ <!-- add to get rid of "..when undefined" message on Debian Woody -->
+ <item> ...when defining an array of structs with flexible
+ members.
+ <item> ...if such a struct is a member field of another struct
+ which is not the last field.
<item> If the struct which contains a flexible array member is
declared as <tt/register/ and the size and compiler settings
do allow the compiler to actually place the struct into the
i = i + OFFS + 3;
</verb></tscreen>
-The expression is parsed from left to right, that means, the compiler sees
-'i', and puts it contents into the secondary register. Next is OFFS, which is
+The expression is parsed from left to right, that means, the compiler sees 'i',
+and puts it contents into the secondary register. Next is OFFS, which is
constant. The compiler emits code to add a constant to the secondary register.
-Same thing again for the constant 3. So the code produced contains a fetch of
-'i', two additions of constants, and a store (into 'i'). Unfortunately, the
+Same thing again for the constant 3. So the code produced contains a fetch
+of 'i', two additions of constants, and a store (into 'i'). Unfortunately, the
compiler does not see, that "OFFS + 3" is a constant for itself, since it does
it's evaluation from left to right. There are some ways to help the compiler
to recognize expression like this:
Specify the start/load address of the binary code that is going to be
disassembled. The given address is interpreted as an octal value if
- preceeded with a '0' digit, as a hexadecimal value if preceeded with '0x',
- '0X', or '$', and as a decimal value in all other cases. If no start address
- is specified, $10000 minus the size of the input file is used.
+ preceeded with a '0' digit, as a hexadecimal value if preceeded
+ with '0x', '0X', or '$', and as a decimal value in all other cases. If no
+ start address is specified, $10000 minus the size of the input file is used.
<tag><tt>-v, --verbose</tt></tag>