Электронные системы ускорителей

ПРИЛОЖЕНИЕ
Сообщение об ошибках ассемблера C51ASM

Ошибка Описание ошибки
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.