User manual
Error messages ST Assembler-Linker
80/89 Doc ID 11392 Rev 4
26
Illegal external suffix: Only the suffixes .b, .B, .w, .W, .l, .L are legal after an external label in an external
directive. If the suffix is left out then the default label size is used (as set by BYTES, WORDS or LONGS;
default is WORDS).
27 Bad character in public line.
28
More than four characters in single quotes: This assembler uses double-quotes to surround string items
and single-quotes to surround character constants. See Section 4.3 on page 18.
29 Uneven single quotes: Single-quoted items must have a closing quote to delimit.
30 Sequential operator error: It does not allow arithmetic operators to be hard up against each other.
31
No lvalue in expression: An lvalue is the left-hand argument of an operator: a + b has 'a' as its lvalue. +b
would cause this error.
32 Divide by zero: Attempt to divide a number by zero, in a numeric expression.
33 Ifs nested past 15 levels: Exceeded maximum number of nested #IF statements.
34 Spurious ELSE: An ELSE was discovered when no active IF was in force.
35 Spurious ENDIF: An ENDIF was discovered when no active IF was in force.
36 Only allowed inside Macros: A LOCAL directive was attempted outside a Macro definition.
37 No strings in word: See Error 24.
38 No string in long: See Error 25.
39 No REPEAT for this UNTIL: An UNTIL directive is found with no matching REPEAT directive.
40 Could not return to old place in source: Similar to Error 3 but generated by UNTIL instead of #include.
43 Syntax error in SKIP arguments: SKIP expects two numeric arguments, separated by a comma.
44
First SKIP argument is extern/relative; SKIP aborted: SKIP arguments must be known to the assembler
absolutely. Extern or relative arguments are not allowed, although arithmetic is. If you need to move up to
a new page, for example, use a new SEGMENT of the same class with a page align type.
45 Second SKIP argument is extern/relative; SKIP aborted: See Error 44.
46 Undefined label: This error happens when a reference is made to an undefined label.
47
Out of label space: A maximum of 1024 labels are allowed per module, and 10k is set aside to contain their
names. If either of these limits is exceeded, this error results. Cut the module into two smaller ones; the
assembly will happen twice as fast and you will only have to reassemble the half you have made changes
to, speeding things up.
48 Label more than 30 characters: Labels longer than 30 characters are not allowed.
49
Label defined as PUBLIC twice: This warning occurs if the same label appears more than once in a
PUBLIC statement. It is trapped because the second appearance may be a typographical error of a
slightly different label you wanted declared as public.
50 Doubly defined label: This happens when a label is defined twice or more.
Table 82. Assembler errors (continued)
Error Definition