В Турбо Ассемблере предусмотрено несколько предопределенных идентификаторов, которые вы можете использовать в программах. В разных местах этого кода эти идентификаторы могут иметь различное значение. Они аналогичны строковым присваиваниям, выполняемым по директиве EQU. Когда Турбо Ассемблер обнаруживает в исходном фай- ле один из этих идентификаторов, он заменяет его текущим значени- ем данного предопределенного идентификатора.
Некоторые из этих идентификаторов представляют собой тексто- вые (строковые) присваивания, другие - числовые присваивания, а третьи являются псевдонимами. Строковые значения могут использо- ваться в любом месте, где допускается использование текстовых строк, например, для инициализации последовательности байтовых данных с помощью директивы DB:
NOW DB ??time
Числовые предопределенные значения можно использовать в лю- бом месте, где допустимо использование числа:
IF ??version GT 100h
Значения-псевдонимы превращают предопределенные идентифика- торы в синоним представляемого значения, что позволяет использо- вать имя предопределенного идентификатора в любом месте, где можно использовать обычное имя идентификатора:
ASSUME cs:@code
Все предопределенные идентификаторы могут использоваться как в режиме MASM, так и в режиме Ideal.
Если вы при ассемблировании используете параметр командной строки /ml, то предопределенные идентификаторы нужно использовать в точности так, как они описаны ниже (соблюдая регистр символов).
К идентификаторам, начинающимся с символа @, применимо сле- дующее правило: первая буква каждого слова, которое составляет имя идентификатора, указывается в верхнем регистре (кроме имен сегментов), а остальная часть слова - в нижнем. Например:
@FileName
Заметим, что @FileName представляет собой присваивание псевдонима для текущей ассемблируемой строки.
Исключением являются переопределенные идентификаторы, кото- рые ссылаются на сегменты. Имена сегментов начинаются с символа @ и записываются символами в нижнем регистре. Например: