Параметры управления предупреждениями — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Параметры управления предупреждениями

2022-10-05 24
Параметры управления предупреждениями 0.00 из 5.00 0 оценок
Заказать работу

Ассемблер имеет развитые возможности управления предупреждениями. Все предупреждения разбиты на несколько групп, относящихся к разным режимам работы или типам обрабатываемых данных. Разбиение на группы приводится ниже в пункте 3.9.2 Управление предупреждениями по группам (ключ -W[+|-]<group>)на стр. 57.

3.10.1 Управление предупреждениями по их номерам (ключ -W[+|-]<num>)

Параметр -W, после которого идет номер предупреждения, позволяет включать/выключать предупреждение с заданным номером.

Если установлен знак "+", то предупреждение в случае возникновения появляется на экране.

При установленном знаке "-" предупреждение игнорируется и на экран не выдается.

Пример

В программе на языке ассемблера есть ошибка, возможно не приводящая к неправильной работе программы:

aaa: word = 8080808080808080h;

Ошибка заключается в том, что переменной, объявленной как 32-х битное слово, присваивается 64-х битная константа.

При компиляции ассемблерного файла, содержащего данную строку, будет выдано следующее сообщение:

>asm mirror.asm

Ассемблер для NM6403-06 1.**. (с) ЗАО НТЦ Модуль 1996-2011. Все права защищены.

"mirror.asm",19: Warning ASM003: Initializer too
                             big, truncated

То же самое будет, если в командную строку будет добавлен параметр -W+3. Однако, если в качестве входного будет использован параметр -W-3, то сообщение будет проигнорировано и не появится на экране.

По умолчанию все предупреждения находятся в активном состоянии (+) кроме предупреждения с номером ASM200, для которого установлено -W-200.

3.10.2 Управление предупреждениями по группам (ключ-W[+|-]<group>)

Параметр -W в сочетании с аббревиатурой, определяющей различные группы сообщений, позволяет управлять выводом предупреждений на экран.

Все предупреждения, выводимые на экран в процессе работы ассемблера, могут быть разделены на следующие группы:

· all - все предупреждения ассемблера;

· debug - все предупреждения, порождаемые при обработке отладочной информации;

· object - все предупреждения, порождаемые при создании объектов ассемблера, таких как неиспользуемые метки;

· compile - предупреждения, возникающие в процессе генерации кода;

· librarian - предупреждения, порождаемые ассемблером в режиме работы макро-библиотекарем.

Описание того, какие сообщения составляют те или иные группы, приводится в подразделе 3.10 «Сообщения об ошибках»

Пример:

Отключить все предупреждения кроме одного можно следующим образом:

asm.exe mytest.asm -W-<all> -W+3

Примечание Действия параметров - W зависят от очередности их появления в командной строке, то есть последующий параметр отменяет предыдущий. Например, последовательность -W-<all> -W+3 отключает все предупреждения кроме 3-го, тогда как последовательность -W+3 -W-<all> отключает все, в том числе и предупреждение с номером 3.

Параметры установки целевой платформы

Ассемблер, поставляемый в составе NM SDK позволяет создавать объектные файлы для различных устройств на базе платформы NeuroMatrix. Поскольку такие устройства могут различаться по машинным кодам либо по особенностям работы с переферией, необходимо указывать, для какой ревизии предназначен данный код.

Ключ - 6403 указывает, что целевой платформой является исторически первый процессор семейства NeuroMatrix, NM6403. Из соображений обратной совмести этот ключ используется по умолчанию.

- 6405 Соответствует процессору NM6405 на базе ядра nmc3.

- 6406 Соответствует процессору NM6406.

- soc Указывает на ядро nmc3 в составе «СБИС ЦУПП»

Следует отметить, что три последних варианта совместимы по машинным кодам, но по-разному работают с переферией, так что если в коде нет работы с переферийными регистрами, то его можно использовать и там и сям. Есть специальный ключ – nmc3, позволяющий делать код для всех таких платформ, однако средства сторонних разработчиков не обязаны поддерживать эту возможность из-за отхода от стандарта ELF.

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

В процессе работы ассемблер может выдавать три типа сообщений:

· предупреждения;

· ошибки;

· внутренние и фатальные ошибки.

При появлении предупреждений работа ассемблера не прекращается, поскольку возникающие в этой ситуации проблемы все же позволяют породить объектный код, хотя, возможно, и неправильно работающий.

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

Для выдачи сообщений на экран ассемблер использует форматированную строку. Ее формат является единым для всего комплекса NMSDK и имеет следующий вид:

 

"имя_файла", [номер_строки] тип_ошибки номер_ошибки: сообщение_об_ошибке.

 

Номер строки не указывается для внутренних и фатальных ошибок.

Под номер ошибки отведено три цифры, то есть он лежит в интервале от 0 до 999. Между типами ошибок номера распределены следующим образом:


 

Табл. 3‑5 Диапазоны номеров для различных типов сообщений.

Номера ошибок Описание
0 - 399 Предупреждения.
400 - 799 Ошибки.
800 - 949 Внутренние ошибки.
950 - 999 Фатальные ошибки.

 

Ниже приводится список сообщений, выдаваемых ассемблером при появлении различных типов ошибочных ситуаций.


 

Предупреждения

Сообщения данного типа указывают на возможность наличия в обрабатываемой программе логических или семантических неточностей. Вывод данного сообщения не влияет на правильность формирования ассемблером выходных файлов.

Сообщения компиляции (группа compile).

ASM001 "Имя секции в конструкции end отличается от имени при открытии:"
  Секция в ассемблере всегда заключена в специальные скобки. Открывающие скобки задаются псевдокомандами:.begin,.data,.nobits. После открывающей скобки расположено название секции. В качестве скобки, закрывающей секцию, используется псевдокоманда.end. После нее также должно располагаться имя секции. Оно должно совпадать с именем при открытии. Если имена секции у открывающей и закрывающей скобок не совпадают, возникает данное предупреждение (дисциплинарная конструкция). В случае несовпадения имя секции у закрывающей скобки игнорируется.
   
ASM 002 "Используйте псевдофункции 'float' или 'double'"
  Переменные типа float или double представлены в памяти процессора в формате IEEE 754. Ассемблер автоматически переводит константы типа 1.5 или 2.7Е-3 в необходимый вид. Однако для того, чтобы такой перевод был корректно осуществлен, необходимо использовать псевдофункции float или double, распознав которые, ассемблер сделает соответствующее преобразование. То есть, правильная запись констант с плавающей точкой имеет вид: float(1.5) или double(2.7E-3). В противном случае константы данного типа будут заменены нулевыми константами.
   
ASM 003 "Значение константы инициализации слишком велико, усечено"
  Такое сообщение обычно возникает при попытке инициализировать 32-х разрядную переменную 64-х битной константой. После усечения остается только младшая часть константы, старшая игнорируется, например: 0123456789ABCDEFhl -> 89ABCDEFh.
   
ASM 004 "Значение константы инициализации слишком мало, расширено"
  Такое сообщение обычно возникает при попытке инициализировать 64-х разрядную переменную 32-х битной константой. Расширение происходит за счет прописывания нулями старшей части константы, например: 12345678h -> 0000000012345678hl.
   
ASM 005 "Псевдофункции loword/hiword не могут применяться к адресным выражениям"
  Разрядность адресных выражений не превышает 32 бит, тогда как псевдофункции loword/hiword предназначены для доступа к младшей/старшей части 64-х разрядного слова соответственно.
   
ASM 006 "Имя макроса в конструкции end отличается от имени при открытии:"
  Макрос в ассемблере всегда заключен в специальные скобки. Открывающие скобки задаются псевдокомандой:.macro. После открывающей скобки расположено название макроса. В качестве скобки, закрывающей секцию, используется псевдокоманда.end. После нее также должно располагаться имя макроса. Оно должно совпадать с именем при открытии. Если имена макроса у открывающей и закрывающей скобок не совпадают, возникает данное предупреждение (дисциплинарная конструкция). В случае несовпадения имя макроса у закрывающей скобки игнорируется.
   
ASM 100 "Для получения правильного результата регистр результата не должен совпадать с регистрами множителя и множимого"
  Для операции умножения, выполняемой аппаратно, существует требование, согласно которому результат операции не может быть записан ни в регистр, в котором располагалось множимое, ни в регистр, где хранился множитель (см. «ЮФКВ.30047-01 96 01. Кросс-средства разработки программ. Описание языка ассемблера»). Сообщение предупреждает, что умножение будет выполнено неправильно.
   
ASM 101 "Операция умножения при выполнении использует регистр результата, по умолчанию подставляем gr0"
  Если не был указан регистр результата при умножении, например, в строке ассемблерной программы записано: gr2*:gr7, то по умолчанию результат будет сохранен в регистре gr0.
   
ASM 102 "Допустима только 1, используем 1"
  В языке ассемблера есть некоторые конструкции, в которых может быть использована только единица, например: gr2 = gr0 - 1. В скалярных или векторных арифметических операциях константа не может принимать участие. Запись же типа gr0 - 1 рассматривается не как операция с константой, а как унарная арифметическая операция модификации регистра общего назначения, и соответствует определенной инструкции процессора. Если в такую конструкцию по ошибке подставлено другое число, то оно автоматически заменяется на 1.
   
ASM 103 "Только регистр gr7 может быть множителем, используем gr7"
  При операции умножения, выполняемой аппаратно, существует требование, согласно которому множитель всегда должен находиться в регистре gr7. Если в обрабатываемой команде вместо gr7 стоит какой-либо другой регистр, он будет заменен на gr7.
   
ASM 104 "Допустим только 0, используем 0"
  В языке ассемблера есть некоторые конструкции, в которых может быть использован только 0, например: векторные инструкции, где 0 выступает в качестве нулевого операнда: with 0 + data. В данном случае ноль является признаком того, что в процессоре автоматически порождается нулевой вектор, который позволяет пропустить data в afifo без изменений. Если в такую конструкцию по ошибке подставлено другое число, то оно автоматически заменяется на 0.
   
ASM 10 5 "Величина сдвига слишком велика. Обрезана до 6 бит."
  Была задана слишком большая величина сдвига Val. Для 64-битных чисел не имеет смысл задавать величину сдвига более 63, и соответствующее поле в инструкции занимает 6 бит. Ассемблер в этом случае использует величину Val%64, то есть, использует младшие 6 бит переданной константы.
   
ASM 106 "Неявная длинная константа. Используйте суффикс ‘L‘"
  Была задана числовая константа, не умещающаяся в 32-битном слове. Ассемблер создал 64-битную константу. При создании 64-битных констант рекумендуется использовать суффикс ‘L’

 

Сообщения отладочной информации (группа debug).

ASM 200 "Второй аргумент не используется"
  По умолчанию данное сообщение отключено. Оно может выдаваться при анализе отладочной информации формата DWARF, когда вместо одного требуемого параметра псевдокоманде подается два. При этом второй параметр игнорируется.
   
ASM 201 "Индекс cie должен совпадать с порядковым номером данной '.debug_frame_cie'"
  Сообщение возникает при несовпадении индекса cie с порядковым номером отладочной псевдокоманды..debug_frame_cie.
   
ASM 202 "Индекс директории должен совпадать с порядковым номером команды '.debug_source_directory'"
  Сообщение возникает при несовпадении индекса каталога с порядковым номером отладочной псевдокоманды.debug_source_directory.
   
ASM 203 "Индекс файла должен совпадать с порядковым номером команды '.debug_source_file'"
  Сообщение возникает при несовпадении индекса файла с порядковым номером отладочной псевдокоманды.debug_source_file.
   
ASM 204 "В данной версии команда '.debug_macro_def' не реализована, пропускаем"
  Поддержка отладочной информации для макросов в данной версии NMSDK не осуществляется.
   
ASM 205 "В данной версии команда '.debug_macro_undef' не реализована, пропускаем"
  Поддержка отладочной информации для макросов в данной версии NMSDK не осуществляется.
   
ASM 206 "В данной версии команда '.debug_macro_start_file' не реализована, пропускаем"
  Поддержка отладочной информации для макросов в данной версии NMSDK не осуществляется.
   
ASM 207 "В данной версии команда '.debug_macro_end_file' не реализована, пропускаем"
  Поддержка отладочной информации для макросов в данной версии NMSDK не осуществляется.
   
ASM 208 "Идентификатор атрибута должен быть числом"
  В качестве идентификатора атрибута используется символьная информация.
   
ASM 209 "Значение атрибута должно быть адресом"
  Параметр отладочной псевдокоманды имеет неверный тип.
   
ASM 210 "Абстрактная команда должна состоять из тройки элементов"
  Неправильно задана структура псевдокоманды.
   
ASM 211 "Может быть только одна '.debug_root_die'"
  В тексте программы встречено более одной псевдокоманды.debug_root_die. Вторая и последующие псевдокоманды.debug_root_die игнорируются.
   
ASM 212 "Последовательность команд '.debug_*die*' должна начинаться с '.debug_root_die'"
  Отсутствует псевдокоманда.debug_root_die, определяющая начало последовательности команд, определенных схемой.debug_*die*.
   
ASM 213 "Тег die должен быть числом"
  Тег die возможно определен, как символьная константа.
   
ASM 214 "Первый аргумент операции должен быть адресом"
  Первый аргумент псевдокоманды имеет тип, отличный от адреса.
   
ASM 215 "Оба аргумента должны быть числами"
  Один или оба аргумента псевдокоманды определены как символьные константы.
   
ASM 216 "Код операции должен быть числом"
  В качестве кода операции использовано символьное выражение.
   
ASM 217 "И код операции и оба аргумента должны быть числами"
  В качестве кода операции и/или аргумента использовано символьное выражение.
   
ASM 218 "Неверное количество аргументов"
  В строке аргументов их количество превышает необходимое или недостает до необходимого.
   
ASM 219 "Неверный тип аргументов"
  В качестве аргумента поданы данные неверного типа.
   
ASM 220 "Последовательности '.debug_line' не могут быть вложенными"
  Последовательности псевдоопераций, описывающие номера строк исходного текста не могут быть вложенными.
   
ASM 221 "В первой '.debug_line' должен быть указан индекс исходного файла"
  Первая псевдооперация.debug_line, описывающая номер строки, должна хранить индекс исходного файла, в котором происходит
   
ASM222 "Пропущена команда '.debug_start_sequence'"
  Встречены псевдокоманды обработки последовательности, хотя начальная псевдокоманда.debug_start_sequence не была задана.
   
ASM 223 "команды \'.debug_XXX\' игнорируются, т.к. задан ключ \'-ga\'"
  Отладочная информация от С\С++ компилятора проигнорирована, поскольку ключ включил режим «отладка по ассемблерному файлу»
   
ASM 224 "в файле ничего нет"
  Исходный файл пуст.
   
ASM 299 "Байты block'а должны быть числами"
  Возможно в структуре блока были обнаружены байты, заданные символьными константами.

 

Сообщения формирования объектного файла (группа object)

ASM 300 "Неиспользованная метка"
  В программе на языке ассемблера была декларирована метка, однако не найдена ни одна ссылка на нее, поэтому она будет проигнорирована.
   
ASM 301 "Генерация отладочной информации невозможна"
  Данное предупреждение появляется в том месте, где найдена первая ошибка при разборе отладочной информации. Начиная с этого места продолжится генерация объектного кода, однако вся отладочная информация будет проигнорирована.
   
ASM 302 "файл листинга не будет препроцессированной версией исходника"
  Обычно, генерируемый при ассемблировании файл листинга сам по себе является ассемблерным файлом, соответствующим исходному, но с вычисленными константами, раскрытыми макросами и псевдоциклами. Однако, при использовании некоторых хитрых конструкций ассемблер не может этого обеспечить.

 

Сообщения макро-библиотекаря (группа librarian)

ASM 350 "Макрос уже есть, пропускаем:"
  В макробиблиотеке уже существует макрос с данным именем, поэтому вновь встреченный макрос будет пропущен.

 


 

Ошибки

Данный тип сообщений указывает на наличие в обрабатываемом файле некоторой ошибки. Данная ошибка не вызывает немедленного прекращения работы ассемблера, но в случае появления сообщений данной категории выходные файлы не порождаются.

ASM 400 "Слишком длинная константа"
  Данная ошибка возникает в случае, когда объявленная константа не помещается в 64 бита.
   
ASM 401 "Неправильный формат десятичного числа"
  Под неправильным форматом десятичного числа подразумевается, что в его состав входят символы, не принадлежащие цифровому ряду 0-9.
   
ASM 402 "Неправильный формат двоичного числа"
  Под неправильным форматом двоичного числа подразумевается, что в его состав входят символы, отличные от 0 и 1.
   
ASM 403 "Неправильный формат восьмеричного числа"
  Под неправильным форматом восьмеричного числа подразумевается, что в его состав входят символы, не принадлежащие цифровому ряду 0-7.
   
ASM 404 "Неправильный формат шестнадцатеричного числа"
  Под неправильным форматом шестнадцатеричного числа подразумевается, что в его состав входят символы, не принадлежащие цифровому ряду 0-9, и не соответствующие буквам A, B, C, D, E, F.
   
ASM 405 "Недопустимый символ"
  Под недопустимым символом в языке ассемблера понимается символ, не принадлежащий следующему подмножеству символов: строчные и прописные латинские буквы, десятичные цифры, а также следующие символы:  ., / \:; " ’ ` [ ] - + = &! < > () * { } _.
   
ASM 406 "Недопустимое условие"
  Под недопустимым условием, приводящим к данной ошибке, в языке ассемблера понимается следующее: · если после символов u> без пробела стоит любой символ, кроме =. То есть должно быть: u>=. · если после символов <> без пробела стоит любой символ, кроме 0. То есть, должно быть: <>0.
   
ASM 407 "После операции квотирования должен быть идентификатор"
  Символ '`' (обратный апостроф) в языке ассемблера может использоваться только в операциях квотирования, то есть когда пользователь желает использовать в качестве идентификатора служебное слово, оно должно в обязательном порядке предваряться символом '`'. Если между данным символом и идентификатором стоит пробел, или если идентификатор отсутствует, возникает данная ошибка.
   
ASM 408 "Не совпадают завершители строки"
  Когда некоторая строка заключается в двойные кавычки, ассемблер вправе ожидать, что если был встречен знак открывающих кавычек ", то до конца строки должны появиться закрывающие двойные кавычки. Если закрывающие кавычки не найдены, или вместо них встречены одиночные, возникает данная ошибка.
   
ASM 409 "Неправильное объявление переменной"
  Данная ошибка возникает, если переменная объявлена вне какой-либо программной секции, и при этом она не является переменной типа common или extern.
   
ASM 410 "Неправильная инициализация"
  Данная ошибка возникает, когда ассемблер обнаруживает попытку инициализации переменной типа common или extern. Переменные данных типов в силу своей природы не могут быть инициализированы.
   
ASM 411 "Неверный тип переменной - предполагается WORD"
  .
   
ASM 412 "Неправильное объявление структуры"
  Данная ошибка возникает, когда имя структуры, определенное рядом с открывающей скобкой struct не совпадает с именем при закрывающей скобке end, например: struct AAA A: word; B: long; end AA;
   
ASM 413 "Поле структуры не найдено"
  Данная ошибка возникает при попытке обращения к несуществующему полю используемой структуры, например: ar0 = offset(AAA, C);, хотя у структуры AAA есть только поля A и B.
   
ASM 415 "Неправильное использование слова OWN"
  Данная ошибка возникает при использовании ключевого слова own вне тела макроса, что недопустимо, поскольку это слово используется для меток, объявленных только внутри макроса.
   
ASM 416 "Неправильное имя библиотеки"
  Данная ошибка возникает в том случае, когда после ключевого слова import не задано имя макробиблиотеки, или задано имя несуществующей библиотеки.
   
ASM 417 "Неверный размер массива"
  Причиной возникновения данной ошибки является неверное указание размера массива, когда он определен равным нулю или отрицательному числу.
   
ASM 418 "Неправильный счетчик в дубликаторе"
  Данная ошибка возникает, когда аргументом дубликатора dup, определяющим количество повторений шаблона, является нуль, или отрицательное число, например: 80808080h dup -10.
   
ASM 419 "Неправильный индекс массива"
  Данная ошибка возникает при попытке обратиться за границы массива. Ошибка может быть обнаружена только при явном задании индекса элемента массива. Например, если в отмеченной строке задано обращение к элементу массива с индексом -1 или 100, притом, что корректные значения индексов лежат в диапазоне от 0 до 99.
   
ASM 422 "Неправильная регистровая пара"
  Когда используется регистровая пара, например, для чтения из памяти 64-х разрядного слова, адресный регистр и регистр общего назначения должны иметь одинаковый индекс: ar0, gr0 или [ar3+=gr3].
   
ASM 423 "Неправильное константное выражение"
  Нарушены правила формирования константного выражения. Ассемблер не может вычислить его, поэтому выдает ошибку.
   
ASM 424 "Использование '.endif' без '.if'"
  Псевдокоманды '.endif' и '.if' всегда должны встречаться парами. Отсутствие '.if' при наличии '.endif' вызывает ошибочную ситуацию.
   
ASM 425 "Рекурсивное использование '.repeat'"
  Ассемблер не допускает вложенных псевдокоманд.repeat.
   
ASM 426 "Неправильный метод адресации"
  Был использован несуществующий метод адресации. Список используемых методов адресации приведен в документе «ЮФКВ.30047-01 96 01. Кросс-средства разработки программ. Описание языка ассемблера»
   
ASM 427 "Адресные регистры из разных групп"
  В данной ассемблерной команде не могут быть использованы адресные регистры из разных групп. Регистры ar0 - ar3 составляют одну группу, регистры ar4 - ar7 вторую. Более подробно см. «ЮФКВ.30047-01 96 01. Кросс-средства разработки программ. Описание языка ассемблера.»
   
ASM 428 "Регистр назначения должен быть адресным"
  Данная ошибка возникает при попытке использовать адресный регистр для выполнения арифметических операций, например: gr4 = ar5+gr5. Такая операция невозможна, вместо нее может быть использована операция модификации адресного регистра: ar4 = ar5+gr5.
   
ASM 429 "Неправильный операнд команды сдвига"
  Данная ошибка возникает, когда неправильно задан оператор сдвига, например, в операциях циклического сдвига в качестве величины сдвига используется число, отличное от 1.
   
ASM 430 "Сдвиг через carry должен выполняться только на единицу"
  Данная ошибка возникает, когда неправильно задан размер сдвига в операциях сдвига через флаг carry, где в качестве величины сдвига используется число, отличное от 1.
   
ASM 431 "Должно быть число"
  В счетчике повторений, определяемом псевдокомандой.repeat. количество повторов задается константным цифровым значением, например,.repeat 32 или.repeat 100. То же относится к счетчику повторений, используемому в векторных командах, диапазон значений которого лежит в пределах 1-32.
   
ASM 432 "Счетчик не находится в пределах (1-32)"
  Счетчик повторений векторной команды должен лежать в пределах от 1 до 32. Этот диапазон определяется глубиной очередей FIFO и внутренней структурой векторного процессора.
   
ASM 433 "Синтаксическая ошибка"
  Самая распространенная ошибка, сообщающая, что в строке, где она произошла, находится синтаксическая конструкция, которая не может быть обработана ассемблером.
   
ASM 434 "Переопределение метки"
  Метка, определенная в данной строке, была определена раньше в другом месте, например, выше по тексту. Эта ошибка может возникнуть так же, когда в макросе используется метка, перед которой отсутствует ключевое слово own.
   
ASM 435 "Рекурсивное использование макроса"
  Ассемблер допускает вложенность макросов, когда в теле одного макроса содержится вызов другого, и так далее. Однако, если в этой цепочке вызовов встретится имя макроса, уже упоминавшегося в ней ранее, то будет порождена ошибка, поскольку в настоящей версии ассемблер не поддерживает рекуррентный вызов макросов.
   
ASM 436 "Количество параметров не совпадает в вызове макроса"
  При разработке макроса программист определяет количество передаваемых ему параметров. Если при вызове макроса количество параметров не соответствует тому, что было определено при разработке, вызывается данная ошибка.
   
ASM 437 "Повторное определение"
  В данной строке встречается повторное определение идентификатора.
   
ASM 438 "Неправильный тип поля"
  Внутренняя ошибка.
   
ASM 439 "Неправильный тип переменной"
  Внутренняя ошибка.
   
ASM 440 "Неопределенная метка"
  Если в программе встречен переход на метку, которая хотя и объявлена, но осталась неопределенной, то порождается данная ошибка. Синтаксически определение метки выглядит следующим образом: <MyLabel>.
   
ASM 441 "Инициализация переменной в секции.nobits"
  Секция.nobits введена в ассемблер для того, чтобы хранить неинициализированные переменные. Если в секции данного типа встречается инициализация, возникает ошибка. Необходимо перенести инициализируемую переменную в секцию соответствующего типа.
   
ASM 442 "Повторное использование идентификатора"
  Данная ошибка возникает при попытке объявления локальной переменной, имеющей имя, которое совпадает с именем объявленной ранее глобальной переменной.
   
ASM 443 "Неправильное определение поля"
   
ASM 444 "Переопределение макроса"
  В данной строке определяется макрос, имя которого совпадает с уже определенным ранее макросом.
   
ASM 445 "Неопределенный макрос"
  В данной строке вызывается макрос, место определения которого не найдено. Возможно макрос определен в другом файле. Используйте команду import<имя_файла>, в которую подставляется имя файла, в котором определен искомый макрос.
   
ASM 446 "Неопределенная константа"
  В данной строке используется константа, которая не была определена заранее.
   
ASM 447 "Неопределенная переменная"
  В данной строке используется переменная, которая не была определена заранее.
   
ASM 448 "Метка не должна иметь тип ‘common’"
  Ошибка возникает в том случае, когда перед меткой обнаружено ключевое слово common, которое не может использоваться с метками, а только с переменными.
   
ASM 449 "Неправильный формат числа с плавающей точкой"
  Поддерживаются только следующие форматы записи вещественных чисел: float(5.6)- вещественное число одинарной точности, float(123.00e12)- число с плавающей точкой (32 бита), double(123.00e12)- длинное число с плавающей точкой (64 бита).
   
ASM 450 "Неопределённая die:"
  Ошибка связана с тем, что die, используемая при записи команд отладочной информации, не была заранее определена.
   
ASM 451 "Потеряна ‘;’ после.endrepeat" "Потеряна ‘;’ после.endif"
  Часто символ ‘;’ теряется после псевдокоманд.endrepeat, или.endif. Данная ошибка является напоминанием.
   
ASM 452 "Деление на ноль в константном выражении"
   
ASM 453 "Неверный синтаксис директивы #-line"
  Если в начале строки попался ‘#’ ассемблер пытается считать #-line – директиву, а если не получилось, ругается. Такая ошибка обычно возникает, если файл предназначен для предобработки С-препроцессором, а его сразу передали ассемблеру (попался #include или #define).
   
ASM 454 "Уже есть секция другого типа, использующая имя"
  Найдены две секции разного типа с одним именем
   
ASM 455 "Попытка изменить константу времени компиляции"
  Переопределение константы
   
ASM 456 "Адресная константа не может использоваться для вычисления 64-битной константы"
  Была попытка сложить адресное выражение с длинным целым или что-то в этом роде
   
ASM 457 "Использование '.if' без '.endif'"
   
ASM 458 "Использование '.repeat' без '.endrepeat'"
   
ASM 459 "Использование 'macro' без 'end'"
  Ассемблер не нашел команды завершения для макрооперации. Это относится к ASM 457 - ASM 459
   
ASM 460 "Неправильный вызов макроса"
  Нарушен синтаксис вызова макроса, либо передано неподходящее количество параметров. Следите за запятыми внутри подстановочного текста, заключайте подстановочный текст в кавычки.
   
ASM 461 "Лишняя закрывающаяся скобка при вызове макроса"
  Следите за скобками внутри подстановочного текста, заключайте подстановочный текст в кавычки.
   

Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.026 с.