№ |
Ошибка |
Описание ошибки |
1 |
Unrecognized input |
Оператор содержит символы, которые не разрешены в языке ассемблера. |
2 |
Undefined symbol |
Ссылка на идентификатор, который не определен |
3 |
Duplicate symbol |
Попытка переопределить ранее определенный идентификатор. |
4 |
Illegal digit for radix |
В числовой константе найдены неиспользуемые цифры для указанной системы счисления. |
5 |
Expression greater than 8-bits
DATA address out of range
|
Результат выражения больше 255 для 8-битного адреса |
6 |
Missing END directive |
Программа заканчивается без оператора END. |
8 |
Illegal assembly line |
Оператор содержит элемент синтаксиса, который не допускается в этом контексте. |
9 |
Command past END statement |
За оператором END следует еще один оператор ассемблера. |
12 |
Unbalanced parentheses (missing open) |
Выражение содержит неодинаковое количество открытых и закрытых скобок. |
15 |
Illegal DPTR instruction |
Псевдонимы инструкции DPTR действительны только при опции -dptr. |
16 |
Divide by zero |
Во время вычисления выражения ассемблер поделил на ноль. |
17 |
Invalid base address
Invalid bit number
|
Слева от оператора "." используется не бит-адресуемый адрес данных.
Справа от оператора "." находится число больше 7
|
18 |
Relative offset exceeds
-128 / +127
|
Целевой адрес относительно оператора перехода не находится внутри диапазона от +127 до -128 байт. |
19 |
Address outside current 2K page |
Целевой адрес инструкции AJMP или ACALL не находится в той же 2048-байтовой странице, принадлежащей следующей за ней инструкции. |
20 |
Illegal operand
Illegal 2nd operand
Illegal 3rd operand
|
Один из указанных операндов не является правильным для инструкции. |
21 |
Illegal indirect register |
Ожидается R0 или R1. Символ косвенной адресации (@) используется с чем-то другим, а не с R0 или R1. |
23 |
Unsupported directive
EDATA Segment not implemented
FDATA Segment not implemented
|
Ассемблер не поддерживает директивы PUBLIC, EXTRN, SEGMENT и RSEG.
Выбранное устройство не имеет EDATA.
Выбранное устройство не имеет FDATA.
|
24 |
Attempting to EQU a previ-ously SET symbol |
Идентификатор, определенный директивой SET, не может быть переопределен с помощью директивы EQU. |
25 |
Attempt to SET an EQU symbol |
Идентификатор, определенный директивой EQU, не может быть переопределен с помощью директивы SET. |
27 |
Target address is undefined |
Выражение для целевого адреса содержит идентификатор, который не определен. |
28 |
Address below segment base
FDATA segment below base
BIT segment above limit
CODE segment above limit
DATA segment above limit
EDATA segment above limit
FDATA segment above limit
IDATA segment above limit
|
Попытка установить значение счетчика текущего сегмента ниже базового адреса сегмента.
Оператор FSEG АТ пытается определить сегмент FDАТА, который начинается ниже логического адреса для выбранного устройства. Обычно это происходит, когда FSEG задает ноль, а FDATA выбранного устройства начинается с большего адреса.
Попытка установить значение счетчика текущего сегмента выше самого большого логического адреса для этого сегмента в выбранном устройстве.
|
30 |
DB not allowed in this segment
DW not allowed in this segment
DBIT only allowed in BSEG
DS not allowed in BSEG
Mnemonic only allowed in CSEG
|
Директивы DB и DW допускаются только в сегментах CODE или FDATA.
Директива DBIT разрешена только в сегменте BSEG.
Директива DS не допускается в сегменте BIT. Используйте DBIT.
Мнемоники команд допускаются только в сегменте кода.
|
31 |
Character strings not allowed |
Строка с более чем двумя символами используется оператором DW. Используйте DB для генерации строкового значения. |
33 |
String not terminated |
Символьная строка неправильно использует кавычки. |
34 |
USING must be between 0-3 |
Номер регистра банка, указанный с помощью директивы USING, превышает 3. |
35 |
$RESTORE must be preceded by $SAVE |
Элемент управления $RESTORE должен предшествовать элементу $SAVE |
37 |
Illegal control statement
Control preceded by noncontrol lines
Unexpected input in control
|
Оператор, начинающийся с $, неизвестен.
Элемент контроля находится после операторов, не являющихся ассемблерными элементами управления.
Ассемблер не смог обработать часть управляющего оператора
|
40 |
Synchronization error
Address overlaps
|
Метка имеет различные значения, определенные на 1 и 2 проходе.
Машинный код уже был создан для места, на которое ориентирован текущий оператор.
|
41 |
Instruction requires extended memory mode |
Были обнаружены инструкции для работы с расширенной памятью: EJMP, ECALL или ERET, однако ассемблер не находится в режиме работы с расширенной памятью. |
43 |
No matching IF
ELSE with no IF
ELSEIF with no IF
Wrong conditional type
|
Директивы условной сборки ELSEIF, ELSE или ENDIF без предшествующей директивы IF.
Все директивы условного блока IF-ELSE-ENDIF должны быть одного типа.
|
44 |
Missing ENDIF |
Директивы условного блока не имеют завершающего ENDIF. |