Присваивание идентификаторам значений
Турбо Ассемблер предоставляет две директивы, которые позволяют присвоить идентификатору значение: EQU и =. Директива EQU определяет строковое присваивание, присваивание псевдонима или числовое присваивание. Она имеет следующий синтаксис:
имя EQU выражение
где "имени" присваивается результат вычисления выражения. "Имя" должно быть новым идентификатором, который ранее подобным образом не определялся. Если первое определение представляло собой строковое присваивание, в режиме MASM вы можете только переопределить идентификатор, определенный по директиве EQU. В режиме MASM EQU может генерировать любой из трех видов присваиваний: строковое, числовое или присваивание псевдонима.
Директива = определяет только числовое присваивание. Она имеет синтаксис:
имя = выражение
где "имени" присваивается результат вычисления выражения, при вычислении которого должна получаться константа или адрес в сегменте. "Имя" может быть новым идентификатором или идентификатором, уже определенным ранее по директиве =. Поскольку директива = имеет намного более предсказуемое поведение, чем директива EQU в режиме MASM, по возможности используйте директиву EQU.
Общая структура модуля
В Турбо Ассемблере имеется несколько директив, которые помогают вам работать с модулями кода. Эти директивы описываются в оставшейся части данной главы.
Директива VERSION
Использование директивы VERSION позволяет вам определить, для какой версии Турбо Ассемблера или MASM вы пишете конкретные модули. Это полезно использовать для совместимости (снизу вверх или наоборот) различных версий TASM и MASM. Директива VERSION также переводит вас в режим работы заданной версии.
Директиву VERSION вы можете указывать как в виде параметра командной строки, так и в исходном коде программы.
В исходном коде она имеет следующий синтаксис:
VERSION <идентификатор_версии>
Допускается задавать следующие идентификаторы версии:
M400 M500 M510 M520 T100 T101 T200 T250 T300
| MASM 4.0 MASM 5.0 MASM 5.1 MASM 5.2 (Quick ASM) Турбо Ассемблер 1.0 Турбо Ассемблер 1.01 Турбо Ассемблер 2.0 Турбо Ассемблер 2.5 Турбо Ассемблер 3.0
|
При использовании данной директивы в командной строке используется следующий синтаксис:
/U<номер_версии>
Например, если вы хотите ассемблировать программу, написанную для MASM 5.0, то можно не изменять исходный код и указать в командной строке параметр /uM510.
Здесь действуют следующие правила:
Директива VERSION по умолчанию всегда выбирает режим MASM, поскольку это начальный режим работы как для MASM, так и для Турбо Ассемблера.
Директива VERSION ограничивает высокоприоритетные ключевые слова теми словами, которые доступны для заданного компилятора и версии, В результате некоторые средства, которые были добавлены в последние версии, будут вам недоступны.
Если в режиме Ideal вы выбираете версию < T300, то директива VERSION вам недоступна. В этом случае, чтобы использовать директиву VERSION, вы должны сначала переключиться в режим MASM.
В предыдущих версиях Турбо Ассемблера совместимость с MASM обеспечивалась с помощью таких директив, как MASM51, MOMASM51, QUIRKS, SMART и NOSMART. Вместо этих директив используется теперь директива VERSION. Полное описание ключевых слов, доступных в каждой предыдущей версии Турбо Ассемблера, можно найти в Приложении B.
Директива NAME
Используйте директиву NAME для задания имени модуля объектного файла. Она имеет следующий синтаксис:
NAME имя_модуля
Примечание: Данная директива работает только в режиме Ideal.
Турбо Ассемблер обычно использует в качестве имени модуля имя исходного файла с дисководом, каталогом и расширением. Если вы хотите изменить это используемое по умолчанию имя, укажите директиву NAME. Новым именем модуля будет имя "имя_модуля", например:
NAME loader
1 2 3 4 5 6 7
8 8 8
| |