There are ten assembly errors.
Note that an error doesn't
necessarily
cause
the program to assemble wrong, particularly
if the error is a syntax
error
in
something like a TABstatement.
Nevertheless, all errors should be avoided.
The errors are as follows.
A
Argumenterror
-
This is caused by an invalid
character
in an operand
field,
or an ASCIIconstant which is out of range.
o
Duplicate label error
-
This indicates
that a symbolic namewas used more
than once as a label.
The first
value will be used.
J
Jump error
-
This indicates
a relative
jump (JR, JRZ, JRNZ, JRC, JRNC,
DJNZ) to a label
which is out of range.
The relative
jump should be replaced
with an absolute one.
There is one small ambiguity with this
error:
If you
have a relative
jump to a non-existant
label,
you will get a J error instead of
a U error.
Although perhaps
the U would be more appropriate,
the way the
errors are handled gives J priority.
r.
r.abel error
characters.
M
Missing label error
-
This indicates
that
an EQUor REQpseudo-op was
encountered,
but there
was no label
on the line.
Obviously,
a label
is
necessary for either of these.
o
Opcodeerror
-
This is caused
by
an illegal
or missing opcode.
Actually,
misspelling
is the most cammon
cause of this error,
or starting
the opcode in
the first
column instead of the second.
R
Register error
-
This indicates
that an illegal
value was found where a
register
was eXPeCted.
S
Syntax error
-
This is caused by missing operands or improper use of
operators.
U
Undefined symbol error
-
This indicates that a symbol was used, but that
the symbol has not been defined.
V
Value error
-
This indicates
that the value computed is out of range for
the operation being used, specifically
a t~byte
instruction,
or a r:s.