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



Продолжение строки


Для тех строк, длина которых превышает 80 символов, в Турбо Ассемблере предусмотрен символ продолжения \. Поскольку Турбо Ассемблер игнорирует любой символ, следующий за \ на данной строке, используйте этот символ в конце строки.


При использовании символа \ максимальная длина строки составляет 1024 символа. Однако таблицы, записи и перечисления могут содержать определения, превышающие 1024 символа. В качестве альтернативы, при которой не накладывается ограничение в 1024 символа, можно использовать синтаксис с множественными определениями. Приведем пример такого синтаксиса (для определения enum):


foo enum ( ;Множественная версия
f1
f2
f3
f4
f5
f6
f7
f8
)


Можно дать более компактную версию этого определения:


foo enum f1,f2( ;Компактная версия
f3,f4
f5,f6
f7,f8)




При использовании множественных определений нужно соблюдать следующие правила:

  • левая скобка, которая начинает определение, должна быть последней лексемой в начальной строке (однако, это не означает, что она должна предшествовать первому элементу списка);

  • в множественное определение нельзя включать такие директивы, как IF или INCLUDE.


В режиме MASM продолжение строки можно использовать при выборе VERSION M51,M520. При это строки и другие лексемы можно размещать на нескольких строках, используя в качестве последнего символа строки символ "\". Например:


VERSION M51,M520
DB "Hello out there \
you guys"


В любом месте строки вы можете использовать стандартный режим продолжения строки Турбо Ассемблера (он всегда доступен). Он действует также, как комментарий, например:


ARG a1:word, \ первый аргумент
a2:word, \ второй аргумент
a3:word, \ третий аргумент




Использование включаемых файлов


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


Примечание: Допускается вложенность директив INCLUDE на любую глубину.


Синтаксис режима Ideal:


INCLUDE "имя_файла"


Синтаксис режима MASM:


INCLUDE имя_файла


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


Предопределенные идентификаторы


В Турбо Ассемблере предусмотрено несколько предопределенных идентификаторов, которые вы можете использовать в программах. В разных местах этого кода эти идентификаторы могут иметь различное значение. Они аналогичны строковым присваиваниям, выполняемым по директиве EQU. Когда Турбо Ассемблер обнаруживает в исходном файле один из этих идентификаторов, он заменяет его текущим значением данного предопределенного идентификатора.


Некоторые из этих идентификаторов представляют собой текстовые (строковые) присваивания, другие - числовые присваивания, а третьи являются псевдонимами. Строковые значения могут использоваться в любом месте, где допускается использование текстовых строк, например, для инициализации последовательности байтовых данных с помощью директивы DB:


NOW DB ??time


Числовые предопределенные значения можно использовать в любом месте, где допустимо использование числа:


IF ??version GT 100h


Значения-псевдонимы превращают предопределенные идентификаторы в синоним представляемого значения, что позволяет использовать имя предопределенного идентификатора в любом месте, где можно использовать обычное имя идентификатора:


ASSUME cs:@code


Все предопределенные идентификаторы могут использоваться как в режиме MASM, так и в режиме Ideal.


Если вы при ассемблировании используете параметр командной строки /ml, то предопределенные идентификаторы нужно использовать в точности так, как они описаны ниже (соблюдая регистр символов).


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


@FileName


Заметим, что @FileName представляет собой присваивание псевдонима для текущей ассемблируемой строки.


Исключением являются переопределенные идентификаторы, которые ссылаются на сегменты. Имена сегментов начинаются с символа @ и записываются символами в нижнем регистре. Например:


@curseg
@fardata


У идентификаторов, начинающихся с двух вопросительных знаков (??), все буквы должны быть в нижнем регистре, например:


??date
??version


Заметим, что идентификатор ??date определяет текстовое присваивание, которое представляет текущую дату. Точный формат строки даты определяется кодом страны, установленным в DOS. Идентификатор ??version позволяет вам писать исходные файлы, использующие средства различных версий Турбо Ассемблера. Это присваивание позволяет вам также определить, ассемблируется ли исходный файл с помощью MASM или с помощью Турбо Ассемблера, поскольку идентификатор ??version в MASM не определен. Аналогично, ??filename определяет строку из 8 символов, представляющую собой имя текущего ассемблируемого файла. Если имя файла содержит менее 8 символов, то оно дополняется пробелами. Идентификатор ??time определяет текстовое присваивание, которое представляет текущее время. Точный формат строки времени определяется кодом страны, установленным в DOS.


<<<  НазадВперед  >>>
 1  2  3  4  5  6  7 


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

8  В тему

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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