Сообщения об ошибках трансляции

В процессе своей работы транслятор TASM формирует два типа ошибок: сообщения о неправильных или некорректных конструкциях в исходном ассемблерном тексте и сообщения о фатальных ошибках. Особенность последних в том, что при их возникновении TASM выдает соответствующее сообщение и немедленно прекращает ассемблирование исходного файла.

Выберите нужный тип ошибки:

Сообщения об ошибках
Сообщения о фатальных ошибках

## Сообщения об ошибках

32-bit segment not allowed without .386
Argument needs type override
Argument to operation or instruction has illegal size
Arithmetic overflow
ASSUME must be segment register
Bad keyword in SEGMENT statement
Can't add relative quantities
Can't address with currently ASSUMEd segment registers
Can't convert to pointer
Can't emulate 8087 instruction
Can't make variable public
Can't override ES segment
Can't subtract dissimilar relative quantities
Can't use macro name in expression
Can't use this outside macro
Code or data emission to undeclared segment
Constant assumed to mean Immediate const
Constant too large
CS not correctly assumed
CS override in protected mode
CS unreachable from current segment
Declaration needs name
Directive ignored in Turbo Pascal model
Directive not allowed inside structure definition
Duplicate dummy arguments:
Expecting METHOD keyword
Expecting offset quantity
Expecting offset or pointer quantity
Expecting pointer type
Expecting record field name
Expecting register ID
Expecting scalar type
Expecting segment or group quantity
Extra characters on line
Forward reference needs override
Global type doesn't match symbol type
ID not member of structure
Illegal forward reference
Illegal immediate
Illegal indexing mode
Illegal instruction
Illegal instruction for currently selected processor(s)
Illegal local argument
Illegal local symbol prefix
Illegal mаcro argument
Illegal memory reference
Illegal number
Illegal origin address
Illegal override in structure
Illegal override register
Illegal radix
Illegal register for instruction
Illegal register multiplier
Illegal segment address
Illegal use of constant
Illegal use of register
Illegal use of segment register
Illegal USES register
Illegal version ID
Illegal warning ID
Instruction can be compacted with override
Invalid model type
Invalid operand(s) to instruction
Labels can't start with numeric characters
Line too long - truncated
Location counter overflow
Method call requires object name
Missing argument list
Missing argument or <
Missing argument size variable
Missing COMM ID
Missing dummy argument
Missing end quote
Missing macro ID
Missing module name
Missing or illegal type specifier
Missing table member ID
Missing term in list
Missing text macro
Model must be specified first
Module is pass-dependant - compatibility pass was done
Name must come first
Near jump or call to different CS
Need address or register
Need colon
Need expression
Need file name after INCLUDE
Need left parenthesis
Need method name
Need pointer expression
Need quoted string
Need register in expression
Need right angle bracket
Need right curly bracket
Need right parenthesis
Need right square bracket
Need stack argument
Need structure member name
Not expecting group or segment quantity
One non-null field allowed per union expansion
Only one startup sequence allowed
Open conditional
Open procedure
Open segment
Open structure definition
Operand types do not match
Operation illegal for static table member
Pass-dependant construction encountered
Pointer expression needs brackets
Positive count expecting
Record field too large
Record member not found
Recursive definition not allowed for EQU
Register must be AL or AX
Register must be DX
Relative jump out of range by __ bytes
Relative quantity illegal
Reserved word used as symbol
Rotate count must be constant or CL
Rotate count out of range
Segment alignment not strict enough
Segment attributes illegally redefined
Segment name is superfluous
String too long
Symbol already defined:__
Symbol already different kind
Symbol has no width or mask
Symbol is not a segment or already part of a group
Text macro expansion exceeds maximum line length
Too few operands to instruction
Too many errors or warnings
Too many initial values
Too many register multipliers in expression
Too many registers in expression
Too many USES registers
Trailling null value assumed
Undefined symbol
Unexpected end of file (no END directive)
Unknown character
Unmatched ENDP:_
Unmatched ENDS:_
User-generated error
USES has no effect without language
Value out of range

32-bit segment not allowed without .386
  32-битовые флаги без директивы .386 не допускаются.
Argument needs type override
  Требуется явно указать тип операнда. Требуется явно указать размер (тип) выражения, так как транслятор не может сделать этого, исходя только из контекста (см. урок 5). Отметим лишь, что такого рода ошибки исправляются с помощью оператора PTR, позволяющего сообщить транслятору истинный размер операнда.
Argument to operation or instruction has illegal size
  Операнд операции или команды имеет недопустимый размер.
Arithmetic overflow
  Арифметическое переполнение. Потеря значащих цифр при вычислении значения выражения.
ASSUME must be segment register
  В директиве ASSUME должен быть указан сегментный регистр.
Bad keyword in SEGMENT statement
  Неверное ключевое слово в операторе SEGMENT. Один из параметров директивы SEGMENT: тип выравнивания, тип объединения или тип сегмента, — имеет недопустимое значение.
Can't add relative quantities
  Нельзя складывать относительные адреса.
Can't address with currently ASSUMEd segment registers
  Невозможна адресация из текущих, установленных директивой assume, сегментных регистров. В выражении содержится ссылка на переменную, для доступа к которой не специфицирован сегментный регистр.
Can't convert to pointer
  Невозможно преобразование в указатель.
Can't emulate 8087 instruction
  Невозможна эмуляция команд сопроцессора 8087.
Can't make variable public
  Переменная не может быть объявлена как PUBLIC. Скорее всего, это вызвано тем, что данная переменная была уже где-то ранее объявлена таким образом, что уже не может быть определена как общая (PUBLIC).
Can't override ES segment
  Нельзя переопределить сегмент ES. Это сообщение характерно для операций типа цепочечных. В некоторых из них нельзя переопределять местоположение сегментной части адреса операнда.
Can't subtract dissimilar relative quantities
  Недопустимое вычитание относительных адресов. Выражение содержит операцию вычитания двух адресов, которая для данных адресов является недопустимой. К примеру, это может случиться, если адреса находятся в разных сегментах.
Can't use macro name in expression
  Недопустимо использование имени макрокоманды в качестве операнда выражения.
Can't use this outside macro
  Использование данного оператора недопустимо вне макроопределения.
Code or data emission to undeclared segment
  Не объявлен сегмент для кода или данных. Это может случиться, если предложение программы, генерирующее код или данные, не принадлежит ни одному из сегментов, объявленных директивами SEGMENT.
Constant assumed to mean Immediate const
  Константа интерпретируется как непосредственная.
Constant too large
  Слишком большая константа. Константа превышает допустимую для данного режима величину. Например, числа, большие 0ffffh, можно использовать, если только директивой .386/.386P или .486/.486Р разрешены команды процессора i386 или i486.1
CS not correctly assumed
  Некорректное значение в регистре cs.
CS override in protected mode
  Переопределение регистра CS в защищенном режиме. Это предупреждающее сообщение выдается, если в командной строке указан параметр /Р.
CS unreachable from current segment
  CS недостижим из текущего сегмента. При определении метки кода с помощью двоеточия (:) или с помощью директив LABEL или PROC сегментный регистр не указывает на текущий кодовый сегмент или группу, содержащую текущий кодовый сегмент.
Declaration needs name
  В директиве объявления не указано имя.
Directive ignored in Turbo Pascal model
  В режиме TPASCAL директива игнорируется.
Directive not allowed inside structure definition
  Недопустимая директива внутри определения структуры.
Duplicate dummy arguments:
  Недопустимо использование одинаковых имен для формальных параметров
Expecting METHOD keyword
  Требуется ключевое слово METHOD.
Expecting offset quantity
  Требуется указать величину смещения.
Expecting offset or pointer quantity
  Требуется указать смещение или указатель.
Expecting pointer type
  Операнд должен быть указателем. Означает, что операндом текущей команды должен быть адрес памяти.
Expecting record field name
  Требуется имя поля записи. Инструкция SETFIELD или GETFIELD использована без последующего имени поля.
Expecting register ID
  Требуется идентификатор регистра
Expecting scalar type
  Операнд должен быть константой.
Expecting segment or group quantity
  Должно быть указано имя сегмента или группы.
Extra characters on line
  Лишние символы в строке.
Forward reference needs override
  Ошибка при использовании умолчания для ссылки вперед.
Global type doesn't match symbol type
  Тип, указанный в директиве GLOBAL, не совпадает с действительным типом имени идентификатора.
ID not member of structure
  Идентификатор не является полем структуры.
Illegal forward reference
  Недопустимая ссылка вперед.
Illegal immediate
  Недопустим непосредственный операнд.
Illegal indexing mode
  Недопустимый режим индексации.
Illegal instruction
  Недопустимая команда.
Illegal instruction for currently selected processor(s)
  Недопустимая команда для выбранного в настоящий момент процессора.
Illegal local argument
  Недопустимый локальный параметр.
Illegal local symbol prefix
  Недопустимый префикс для локальных имен идентификаторов.
Illegal mаcro argument
  Недопустимый параметр макрокоманды.
Illegal memory reference
  Недопустима ссылка на память.
Illegal number
  Недопустимое число.
Illegal origin address
  Недопустимый начальный адрес.
Illegal override in structure
  Недопустимое переопределение в структуре.
Illegal override register
  Недопустимое переопределение регистра.
Illegal radix
  Недопустимое основание системы счисления. В директиве .RADIX в качестве основания системы счисления указано недопустимое число. Основанием системы счисления могут быть только числа: 2, 8, 10 и 16. Эти числа интерпретируются как десятичные независимо от текущей системы счисления.
Illegal register for instruction
  Недопустимый регистр в инструкции. В качестве операнда инструкций SETFIELD и GETFIELD использован недопустимый регистр.
Illegal register multiplier
  Недопустимо указание множителя для регистра.
Illegal segment address
  Недопустимый сегментный адрес.
Illegal use of constant
  Недопустимо использование константы.
Illegal use of register
  Недопустимо использование регистра.
Illegal use of segment register
  Недопустимо использование сегментного регистра.
Illegal USES register
  В директиве USES указан недопустимый регистр.
Illegal version ID
  Недопустимый идентификатор версии.
Illegal warning ID
  Недопустимый идентификатор предупреждающего сообщения.
Instruction can be compacted with override
  Возможно сокращение длины команды, если явно указать тип имени. Из-за наличия ссылки вперед на имя идентификатора объектный код содержит дополнительные команды NOP. Этим самым транслятор резервирует место для размещения адреса идентификатора. При необходимости код можно сократить, убрав ссылку вперед, либо явно указать тип символического имени.
Invalid model type
  Недопустимая модель памяти.
Invalid operand(s) to instruction
  Недопустимый операнд(ы) для данной команды.
Labels can't start with numeric characters
  Метки не могут начинаться с цифровых символов.
Line too long - truncated
  Строка слишком длинная, и поэтому производится усечение.
Location counter overflow
  Переполнение счетчика адреса.
Method call requires object name
  В вызове метода необходимо имя объекта.
Missing argument list
  Отсутствует список аргументов.
Missing argument or <
  Отсутствует аргумент либо не указана угловая скобка <.
Missing argument size variable
  Отсутствует переменная для размера блока параметров.
Missing COMM ID
  Отсутствует идентификатор в директиве COMM.
Missing dummy argument
  Отсутствует формальный параметр.
Missing end quote
  Отсутствует закрывающая кавычка.
Missing macro ID
  Отсутствует идентификатор макрокоманды.
Missing module name
  Отсутствует имя модуля.
Missing or illegal type specifier
  Отсутствует или неверно указан спецификатор типа.
Missing table member ID
  Пропущен идентификатор элемента таблицы.
Missing term in list
  Отсутствует член в списке параметров.
Missing text macro
  Отсутствует текстовая макрокоманда.
Model must be specified first
  Сначала должна быть указана модель памяти.
Module is pass-dependant — compatibility pass was done
  Модуль зависит от прохода. Выполнен проход, обеспечивающий совместимость с MASM.
Name must come first
  Имя должно быть указано первым.
Near jump or call to different CS
  Адресат ближнего перехода или вызова находится в другом кодовом сегменте.
Need address or register
  Требуется указать адрес или регистр.
Need colon
  Требуется двоеточие.
Need expression
  Требуется указать выражение.
Need file name after INCLUDE
  В директиве INCLUDE должно быть указано имя файла.
Need left parenthesis
  Отсутствует левая круглая скобка.
Need method name
  Требуется имя метода.
Need pointer expression
  Требуется выражение-указатель.
Need quoted string
  Требуется указать строку в кавычках.
Need register in expression
  В выражении требуется указать имя регистра.
Need right angle bracket
  Отсутствует правая угловая скобка.
Need right curly bracket
  Требуется правая фигурная скобка.
Need right parenthesis
  Отсутствует правая круглая скобка.
Need right square bracket
  Отсутствует правая квадратная скобка.
Need stack argument
  Не указан стековый параметр в команде арифметики с плавающей запятой.
Need structure member name
  Не указано имя поля структуры.
Not expecting group or segment quantity
  Использование имени группы или сегмента недопустимо.
One non-null field allowed per union expansion
  При расширении объединения допускается указывать только одно поле непустым.
Only one startup sequence allowed
  Допускается только одна директива генерации кода инициализации.
Open conditional
  Открытый условный блок. После завершающей программу директивы END обнаружен незакрытый условно ассемблируемый блок, открытый одной из директив IFxxx.
Open procedure
  Открытая процедура. После завершающей программу директивы END обнаружен незакрытый директивой ENDР блок описания процедуры, открытый где-то в программе директивой PROC.
Open segment
  Открытый сегмент. После завершающей программу директивы END обнаружен незакрытый директивой ENDS сегмент, открытый где-то в программе директивой SEGMENT.
Open structure definition
  Не указан конец определения структуры (директива ENDS).
Operand types do not match
  Не совпадают типы операндов. Тип одного из операндов команды не совпадает с типом другого операнда либо не является допустимым для данной команды.
Operation illegal for static table member
  Для статического элемента таблицы операция не допускается.
Pass-dependant construction encountered
  Обнаружена конструкция, зависящая от прохода. Данную ошибку можно исправить, убрав ссылки вперед либо указав нужное число проходов транслятора в опции командной строки /m.
Pointer expression needs brackets
  Адресное выражение должно быть заключено в квадратные скобки.
Positive count expecting
  Счетчик должен быть положительным.
Record field too large
  Слишком длинное поле в записи.
Record member not found
  Не найден статический элемент записи.
Recursive definition not allowed for EQU
  Рекурсивное определение недопустимо в директиве EQU.
Register must be AL or AX
  Допустимо указание только регистра al или ax.
Register must be DX
  Допустимо указание только регистра dx.
Relative jump out of range by __ bytes
  Адрес назначения условного перехода превышает допустимый предел на __ байт.
Relative quantity illegal
  Недопустимый относительный адрес. Ссылка на адрес памяти не может быть разрешена на этапе ассемблирования.
Reserved word used as symbol
  Зарезервированное слово используется в качестве имени идентификатора.
Rotate count must be constant or CL
  Счетчик в командах сдвига должен быть указан с помощью константы или регистра cl.
Rotate count out of range
  Недопустимое значение для счетчика сдвига.
Segment alignment not strict enough
  Выравнивание сегмента недостаточно точное.
Segment attributes illegally redefined
  Недопустимое переопределение атрибутов сегмента. Суть здесь в том, что пользователь может повторно открывать уже определенный ранее сегмент. Но при этом атрибуты этого сегмента должны иметь те же самые значения либо вообще быть опущены (тогда будут взяты прежние значения).
Segment name is superfluous
  Имя сегмента игнорируется.
String too long
  Слишком длинная строка. Длина указанной в кавычках строки превышает 255 символов.
Symbol already defined: __
  Имя идентификатора уже определено.
Symbol already different kind
  Имя идентификатора уже объявлено с другим типом.
Symbol has no width or mask
  Имя идентификатора не может быть использовано в операциях WIDTH и MASK.
Symbol is not a segment or already part of a group
  Имя идентификатора не является именем сегмента либо уже определено в группе.
Text macro expansion exceeds maximum line length
  Расширение текстовой макрокоманды превышает максимально допустимую длину.
Too few operands to instruction
  В команде не хватает операндов.
Too many errors or warnings
  Слишком много ошибок или предупреждений. Число сообщений об ошибках превысило максимально возможное число — 100.
Too many initial values
  Слишком много начальных значений.
Too many register multipliers in expression
  В выражении содержится слишком много множителей для регистров.
Too many registers in expression
  В выражении указано слишком много регистров.
Too many USES registers
  Слишком много регистров в директиве USES.
Trailling null value assumed
  Предполагается конечное пустое значение.
Undefined symbol
  Идентификатор не определен.
Unexpected end of file (no END directive)
  Неожиданный конец файла (нет директивы END).
Unknown character
  Неизвестный символ.
Unmatched ENDP:_
  Непарная директива ENDP:_.
Unmatched ENDS:_
  Непарная директива ENDS:_.
User-generated error
  Ошибка, сгенерированная пользователем. Сообщение выдается в результате выполнения одной из директив генерирования ошибки.
USES has no effect without language
  USES игнорируется без спецификации языка.
Value out of range
  Значение константы превышает допустимое значение.

## Сообщения о фатальных ошибках

Bad switch
Can't find @file __
Сan't locate file __
Error writing to listing file
Error writing to object file
File not found
File was changed or deleted while assembly in progress
Insufficient memory to process command line
Internal error
Invalid command line
Invalid number after _
Out of hash space
Out of memory
Out of string space
Too many errors found
Unexpected end of file (no END directive)

Bad switch
  Неверный параметр-переключатель командной строки.
Can't find @file __
  Не найден файл подсказок __.
Сan't locate file __
  Не обнаружен файл __. При выдаче этого сообщения нужно проверить, правильно ли указаны в имени файла имя дисковода и маршрут доступа к файлу, указанному в директиве INCLUDE.
Error writing to listing file
  Ошибка при записи в файл листинга. Возможно, просто исчерпано место на диске.
Error writing to object file
  Ошибка при записи в объектный файл. Возможно, просто исчерпано место на диске.
File not found
  Не найден файл. В командной строке указано имя несуществующего исходного файла.
File was changed or deleted while assembly in progress
  Файл был изменен или уничтожен в процессе ассемблирования.
Insufficient memory to process command line
  Не хватает памяти для обработки командной строки.
Internal error
  Внутренняя ошибка.
Invalid command line
  Недопустимая командная строка
Invalid number after _
  Недопустимый номер после _.
Out of hash space
  Не хватает памяти под хеш-таблицы. Для каждого имени идентификатора в программе транслятор формирует один элемент таблицы идентификаторов. Эта таблица рассчитана на 16 384 имени идентификаторов. При необходимости это число можно увеличить, используя параметр командной строки /kh.
Out of memory
  Не хватает памяти. Для ассемблирования пользовательского файла недостаточно свободной памяти.
Out of string space
  Не хватает памяти под строки. Здесь имеется в виду выделяемый объем памяти для хранения строк, представляющих собой имена идентификаторов, имена файлов, информацию для разрешения опережающих ссылок, текстов макрокоманд. Допускается максимум 512 Кбайт памяти, но в результате компиляции исходной программы этот объем был превышен.
Too many errors found
  Обнаружено слишком много ошибок. Трансляция прекращена, так как в исходном файле содержится слишком много ошибок.
Unexpected end of file (no END directive)
  Неожиданный конец файла (отсутствует директива END).