Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Общие принципы программирования - Программирование от RIN.RU
Общие принципы программирования



Директива END


Используйте директиву END, чтобы отметить конец исходного файла. При этом используется следующий синтаксис:


END начальный_адрес:


где "начальный_адрес" - это необязательный идентификатор или выражение, определяющий адрес в программе, с которого вы хотите начать выполнение. Если ваша программа скомпонована из нескольких исходных файлов, начальный адрес может задаваться только в одном из них. Этот адрес может представлять собой адрес в модуле. Он может быть также внешним идентификатором, определенным в другом модуле, описанном по директиве EXTRN.


Любой текст, указанный в исходном файле после директивы END, Турбо Ассемблер игнорирует.


Пример:


.MODEL small
.CODE
; тело программы
END START ; точка входа программы "START"
THIS LINE IS IGNORED ; эта строка игнорируется
SO IS THIS ONE ; эта строка тоже


Вывод сообщения в процессе ассемблирования


Турбо Ассемблер обеспечивает две директивы, которые позволяют вам выводить строку на консоль в процессе ассемблирования: DISPLAY и %OUT. Вы можете использовать эти директивы для сообщений о ходе ассемблирования, о том, чтобы знать, насколько продвинулся процесс ассемблирования, или чтобы определить, что достигнута определенная часть кода.


Эти две директивы практически представляют собой одно и то же, но директива DISPLAY выводит на экран строку, заключенную в кавычки, а %OUT - без кавычек.


В режимах Ideal и MASM директива DISPLAY имеет следующий синтаксис:


DISPLAY "текст"


где "текст" - любое сообщение, которое вы хотите вывести на экран. Заметим, что для вывода информации вместо экрана в файл вы можете использовать средство изменения направления вывода DOS.


Директива %OUT в режимах Ideal и MASM имеет следующий синтаксис:


%OUT текст


где "текст" также представляет то, что вы хотите вывести.


Вывод предупреждающих сообщений


Турбо Ассемблер предоставляет вам выбирать предупреждающие сообщения (если они имеются), которые будут выводиться в определенных частях кода. Каждое предупреждающее сообщение содержит трехбуквенный идентификатор, который вы можете заранее задать, чтобы Турбо Ассемблер знал, хотите или нет вы просматривать предупреждающие сообщения этого класса. Для разрешения предупреждающих сообщений вы можете использовать директиву WARN, а для их запрещения - NOWARN.


Синтаксис директивы WARN следующий:


WARN [класс_предупреждений]


где "класс_предупреждений" - это трехбуквенный идентификатор, задающий конкретный тип сообщения. Допускается использовать следующие классы предупреждений:
ALN Выравнивание сегмента
BRK Требуются скобки
ICG Неэффективная генерация кода
LCO Переполнение счетчика инструкций
OPI Открытие условного IF
OPP Открыть процедуру
OPS Открытие сегмента
OVF Арифметическое переполнение
PDC Конструкция, зависящая от прохода
PRO Запись в память в защищенном режиме с использованием регистра CS
PQK Предположение об использовании констант для константа] предупреждение.
RES Предупреждение о зарезервированном слове.
TPI Недопустимое предупреждение Турбо Паскаля.



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


Приведем пример использования директивы WARN:


WARN OVF ; разрешается предупреждение о переполнении
DW 1000-h * 123h ; выводится предупреждение о переполнении


Примечание: Директива WARN без класса предупреждений разрешает все предупреждения. Директива WARN с идентификатором разрешает только указанные предупреждения.


Для запрещения конкретного класса предупреждающих сообщений (или их всех) используйте директиву NOWARN. Эта директива использует те же идентификаторы, что и описанные выше для директивы WARN. Приведем примеры использования директивы NOWARN:


NOWARN OVF ; запрещается предупреждение о переполнении
DW 1000-h * 123h ; не выводится предупреждение о переполнении


Вывод нескольких сообщений об ошибках


По умолчанию Турбо Ассемблер допускает вывод для каждой строки исходного кода только одного сообщения об ошибке. Если строка исходного кода содержит несколько ошибок, то Турбо Ассемблер сообщает сначала о наиболее существенной из них. С помощью директив MULTERRS и NOMUTERRS вы можете управлять числом сообщений об ошибках, получаемых для каждой строки исходного кода.


Директива MULTERRS позволяет Ассемблеру сообщать для каждой строки исходного кода о более чем одно ошибке. Иногда это полезно использовать для обнаружения трудноуловимой ошибки, или когда исходная строка содержит более одной ошибки.


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


Приведем пример директивы MULTERRS:

MULTERRS
mov ax,[bp+abc

; порождает две ошибки:
; 1) неопределенный идентификатор
; abc
; 2) нужна правая квадратная
; скобка



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


Приведем пример использования директивы NOMULTERRS:


NOMULTERRS
mov ax,[bp+abc

; порождает одну ошибку:
; 1) неопределенный идентификатор
; abc



<<<  Назад
 1  2  3  4  5  6  7 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Начало работы на Турбо Ассемблере

Использование директив и параметров

Объектно-ориентированное программирование

Использование выражений и значений идентификаторов

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Определение типов данных

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

Использование условных директив

Интерфейс с компоновщиком

Генерация листинга

Интерфейс Турбо Ассемблера и Borland C++

Интерфейс Турбо Ассемблера с Турбо Паскалем

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь