Если в процессе ассемблирования программа ’’ASM” обнаружит в исходном тексте ошибки, то сообщения об этих ошибках будут выдаваться на консоль по мере их обнаружения до завершения процесса ассемблирования, Сообщения об ошибках содержат специальные коды, по которым можно определить тип ошибки. Эти коды также выдаются в соответствующих строках распечатки в файле ’’.PRN”-.
Программа ’’ASM” выдает сообщения об ошибках в следующем формате, где символ ”С” обозначает код ошибки. Код ошибки всегда распечатывается в первой позиции строки, содержащей ошибку. За ним через пробел следует четырехзначный шестнадцатеричный адрес команды. Следом за адресом печатается реальный шестнадцатеричный код команды, который получен в результате ассемблирования и который обычно состоит из всех нулей в зависимости от серьезности ошибки. Если значение этого кода больше, чем ”0000”, то не стоит заблуждаться. Программа ’’ASM” всегда будет пытаться ассемблировать команду до тех пор, пока не обнаружит ошибку. Этот код обычно обозначает, что команда была отассемблирована лишь частично. Программа ’’ASM” выдает следующие сообщения об ошибках:
D — Ошибка в данных. Эта ошибка возникает в тех случаях, когда выражение в исходной строке не соответствует назначенной ему области данных. Обычно это означает, что выражение слишком длинное и его необходимо по возможности сократить.
Е — Ошибка в выражении. Это сообщение означает, что выражение в исходной строке сформировано неправильно или что значение этого выражения слишком длинное и не может быть записано в указанную область данных. L — Ошибка в символическом имени. Эта ошибка возникает при неправильном использовании символического имени. Наиболее распространенной причиной такой ошибки является спецификация метки более чем в одной исходной строке.
N — Средство не реализовано. Эта ошибка возникает в тех случаях, когда программа ’’ASM” обнаруживает в исходном тексте директиву, которую она опознает, но не может обработать. Наиболее вероятной причиной такой ошибки является то, что в исходной программе используются директивы макроассемблера ”МАС” фирмы Digital Research. Смысл данного сообщения, следовательно, заключается в том, что указанная исходная строка содержит директиву, которую может обработать только программа ”МАС”, так как программа ’’ASM” не располагает соответствующими для этого средствами.
О — Ошибка переполнения. Эта ошибка возникает в тех случаях, когда программа ’’ASM” обнаруживает в исходном тексте строку, содержащую слишком сложное выражение, которое нельзя обработать. Для того чтобы разрешить эту проблему, разбейте выражение на более мелкие части, или же уменьшите число операторов в данном выражении.
Р — Ошибка фазы. Эта ошибка возникает в тех случаях, когда значение символического имени в исходной программе изменяется некорректным образом. Для изменения значения символического имени следует применять директиву SET. Эта ошибка может также возникнуть, если в процессе ассемблирования программа ’’ASM” обнаружит повторное определение символического имени.
R — Ошибка в имени регистра. Это -сообщение означает, что в исходной строке указано имя регистра, которое не соответствует мнемоническому. Если, например, задано выражение ”РОР А”, то в результате появится сообщение об ошибке в имени регистра, поскольку в языке ассемблера для микропроцессора Intel 8080 это выражение является недопустимым.
S — Ошибочный символ. Это сообщение означает, что в поле комментариев исходной строки использован недопустимый символ (например, символ ”!”). U — Неопределенное символическое имя. Эта ошибка возникает в тех случаях, когда в выражении обнаружено символическое имя с неопределенным значением. Например, если задано выражение ”LXI CONT”, а символическое имя ”CONT” не определено, то соответствующая исходная строка будет содержать код этой ошибки.
V — Ошибка в значении. Эта ошибка имеет место в тех случаях, когда программа ’’ASM” обнаруживает выражение или операнд, которые указаны неправильно. Обычно это происходит в результате типографских ошибок, таких как отсутствие запятой или других необходимых специальных символов.