0988b24c

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


В Турбо Ассемблере предусмотрено несколько предопределенных идентификаторов, которые вы можете использовать в программах. В разных местах этого кода эти идентификаторы могут иметь различное значение. Они аналогичны строковым присваиваниям, выполняемым по директиве 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.


Содержание раздела