Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
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
Интерфейс с компоновщиком




Модульные программы обычно состоят из нескольких независимых частей кода, называемых модулями. Компилятор обрабатывает каждый из этих модулей независимо, а компоновщик (TLINK) объединяет полученные части вместе для создания выполняемого файла. О том, как использовать TLINK, рассказывается в документации по компилятору, но важно также знать, как определить и включить все файлы и библиотеки, которые могут понадобиться при компоновке. В данной Главе рассказывается о том, как это сделать.


Описание внешних идентификаторов


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


Соглашения для конкретного языка


Когда вы назначаете имена идентификаторам, которые планируется использовать глобально, нужно помнить об использовании спецификатора языка. К именам переменных предъявляются следующие требования:


  • в Паскале имена указываются символами в верхнем регистре;

  • в Си/С++ имен должны начинаться с символа подчеркивания (_). Остальная часть имени записывается символами в нижнем регистре.




Параметр /m (описанный в этой главе) сообщает Турбо Ассемблеру, что во всех именах идентификаторов нужно различать регистр. Параметр /mx (также описанный в этой главе) указывает, что различать регистр символов нужно только во внешних и общедоступных идентификаторах, и что все другие идентификаторы в исходном файле записаны в верхнем регистре. Когда вы используете эти два параметра вместе, для идентификаторов, описанных в Паскале, они имеют специальное значение: они приводят к тому, что рассматриваемые идентификаторы будут доступны компоновщику, как идентификаторы в верхнем регистре.


Описание общедоступных идентификаторов


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


  • имена переменных;

  • метки программы;

  • числовые константы, определенные с помощь EQU.




Для определения общедоступных идентификаторов можно использовать директиву PUBLIC, которая имеет следующий синтаксис:


PUBLIC [язык] идентификатор [,[язык] идентификатор] .


где "язык" представляет собой C, CPP, PASCAL, BASIC, FORTRAN, PROLOG или NOLANGUAGE и определяет соглашения конкретного языка, применяемые к имени переменной. Использование спецификатора языка в директиве PUBLIC временно переопределяет временно переопределяет текущую установку языка (по умолчанию NOLANGUAGE, если другой язык не задан в директиве .MODEL).


Турбо Ассемблер описывает идентификатор в объектном модуле таким образом, что он будет доступен всем другим модулям. Если вы не сделаете идентификатор общедоступным, то сможете обращаться к нему только из текущего модуля, например:


PUBLIC XYPROC ; процедура общедоступна
XYPROC PROC NEAR


Вперед  >>>
 1  2  3 


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

8  В тему

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

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

Общие принципы программирования

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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