 |
Турбо Ассемблер позволяет вам также поместить наиболее часто
используемые параметры в файл конфигурации в текущем каталоге.
Таким образом, когда вы запускаете Турбо Ассемблер, он будет в
текущем каталоге искать файл TASM.CFG. При работе в операционной
системе DOS 3.x и старше поиск будет также выполняться в катало-
ге, из которого был загружен TASM или TASMX. Если Турбо Ассемблер
находит этот файл, то он будет интерпретировать его, как косвен-
ный файл, и обрабатывать его в командной строке первым.
Это может оказаться полезным, когда вы формируете "проект"
программы, и все файлы проекта находятся в одном каталоге. При
этом вы хотите, например, всегда выполнять ассемблирование с ис-
пользованием эмулирования инструкций с плавающей точкой (пара-
метр /E). Для этого вы можете поместить параметр в файл TASM.CFG,
после чего его не нужно будет задавать каждый раз при запуске
Турбо Ассемблера.
Содержимое файла конфигурации имеет тот же формат, что и
косвенный файл. Этот файл может содержать любую допустимую в ко-
мандной строке информацию и содержать столько строк, сколько не-
Турбо Ассемблер 3.0/tasm/#1-2 = 54 =
обходимо. Параметры обрабатываются так, как если бы они содержа-
лись на одной строке.
Содержимое файла конфигурации обрабатывается до всех других
аргументов командной строки. Это позволяет вам отменить любой па-
раметр, заданный в файле конфигурации, просто указав в командной
строке параметр, который имеет противоположное действие. Напри-
мер, если ваш файл конфигурации содержит параметры:
/A /E
и вы вызываете Турбо Ассемблер командой:
TASM /S /R MYFILE
где MYFILE - файл вашей программы, то ассемблирование будет вы-
полнено с последовательным упорядочиванием сегментов (/S) и ре-
альными инструкциями с плавающей точкой (/R), хотя в файле конфи-
гурации содержатся директивы /A и /E, задающие упорядочивание
сегментов по алфавитному порядку и эмулирование инструкций с пла-
вающей точкой.
Турбо Ассемблер 3.0/tasm/#1-2 = 55 =
Глава 3. Общие принципы программирования
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Данная глава знакомит вас с основными принципами Турбо
Ассемблера. Мы сравним режимы Турбо Ассемблера Ideal и MASM,
рассмотрим, как можно комментировать программы и продолжать стро-
ки исходного кода, использовать включаемые файлы, предопределен-
ные идентификаторы и как использовать некоторые директивы, гене-
рирующие информацию для модулей. Хотя диапазон охваченным тем
велик, это даст вам хорошее представление о том, что собой предс-
тавляет язык ассемблера.
Режим Ideal Турбо Ассемблера
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Для тех, кто пытается приспособить для своих целей макроас-
семблер MASM, эта глава является, вероятно, наиболее важной в
данном руководстве. Кроме очень хорошей совместимости с синтак-
сисом MASM, Турбо Ассемблер позволяет несколько сгладить неудоб-
ства программирования с использованием MASM с помощью улучшенного
режима (режима Ideal).
Кроме всего прочего режим Ideal позволяет вам, глядя только
на исходный текст, определить, как будет вести себя выражение или
операнд инструкции. При этом нет необходимости держать в памяти
все тонкости MASM. С помощью улучшенного режима вы просто сможете
писать ясные и четкие выражения, которые будут выполняться так,
как это было задумано.
Режим Ideal использует почти все ключевые слова, операции и
конструкции языка MASM. Это означает, что вы можете исследовать и
использовать средства режима Ideal поочередно, не прибегая к изу-
чению большого числа новых правил или ключевых слов. Все средства
режима Ideal представляют собой расширения или модификацию воз-
можностей, имеющихся в MASM.
Благодаря строгой проверке типа, выражения режима Ideal Тур-
бо Ассемблера гораздо более понятны и менее способствуют получе-
нию непредвиденных результатов. В результате многие из проблем
MASM, о которых мы предупреждали вас в предыдущих главах, исчеза-
ют под зорким оком режима Ideal.
Pежим Ideal содержит также ряд средств, облегчающих процесс
программирования как для новичков, так и для опытных пользовате-
лей. Вот некоторые из таких средств:
* дублирование имен элементов во множественных структурах;
* сложные выражения HIGH и LOW;
* предсказуемая обработка директив EQU;
* корректная обработка сгруппированных сегментов данных;
Турбо Ассемблер 3.0/tasm/#1-2 = 56 =
* улучшенная содержательность директив;
* хорошо воспринимаемые выражения, заключенные в квадратные
скобки.
Для чего используется режим Ideal?
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Есть множество причин, по которым вам следует использовать
режим Ideal Турбо Ассемблера. Если вы изучаете язык Ассемблера,
то сможете легко строить для получения желаемого эффекта выраже-
ния и операторы режима Ideal. Вам не придется ходить вокруг да
около и пробовать различные варианты, пока вы не используете инс-
трукцию, которая делает именно то, что вы хотите. Если у вас име-
ется опыт программирования на Ассемблере, то вы можете использо-
вать средства режима Ideal Турбо Ассемблера для разработки
сложных программ, использующих расширения языка, такие, например,
как вложенные структуры и объединения.
В результате более четкого синтаксиса режим Ideal Турбо Ас-
семблера позволяет ассемблировать файлы на 30% быстрее, чем в ре-
жиме MASM. Чем больше объем ваших программ и программных комплек-
сов, тем больше времени вы сэкономите при ассемблировании,
перейдя в режим Ideal.
Строгие правила проверки типов, налагаемые режимом Ideal,
позволяют Турбо Ассемблеру выявлять ошибки, которые в противном
случае вы обнаружили бы только при отладке вашей программы или ее
выполнении. Это аналогично тому, каким образом компиляторы языков
высокого уровня оказывают вам помощь, отмечая сомнительные конс-
трукции и несоответствие размеров данных.
Хотя в режиме Ideal Турбо Ассемблера в некоторых выражениях
используется другой синтаксис, вы, тем не менее, можете писать
программы, которые будут одинаково хорошо ассемблироваться как в
режиме MASM, так и в режиме Ideal. Вы можете также в одном и том
же исходном файле переключаться из режима MASM в режим Ideal и
обратно так часто, насколько это необходимо. Это особенно полезно
при экспериментировании со средствами режима Ideal, или при пре-
образовании имеющихся программ, написанных в синтаксисе MASM. Вы
можете переключиться в режим Ideal в новых частях программы, до-
бавляемых к имеющемуся исходному коду. При этом в остальных час-
тях программы сохранится полная совместимость с MASM.
Переключение в режим Ideal и выход из него
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Для переключения между режимом MASM и режимом Ideal можно
использовать директивы IDEAL и MASM. Турбо Ассемблер всегда начи-
нает ассемблирование исходного файла в режиме MASM. Для переклю-
чения в режим Ideal перед использованием любых средств этого ре-
жима в исходный файл нужно включить директиву IDEAL. С этого
Турбо Ассемблер 3.0/tasm/#1-2 = 57 =
момента и до следующей директивы MASM все операторы будут вести
себя так, как описывается в данной главе. Вы можете переключаться
из режима MASM в режим Ideal в исходном файле столько раз, сколь-
ко потребуется в любом месте исходного файла. Приведем пример:
DATA SEGMENT ; начало в режиме MASM
abc LABEL BYTE ; abc адресуется к xyz,
; как к байту
xyz DW 0 ; определить слово по
; метке xyz
DATA ENDS ; завершить сегмент
; данных
IDEAL ; перейти в
; режим Ideal
SEGMENT CODE ; ключевое слово SEGMENT
; теперь следует первым
PROC MyProc ; ключевое слово PROC
; тоже следует первым
.
. ; здесь можно программировать
. ; в режиме Ideal
END MyProc ; повторение метки MyProc
; необязательно
ENDS ; повторение имени сегмента
; не требуется
MASM ; переключение обратно в
; режим MASM
CODE SEGMENT ; перед ключевым словом SEGMENT
; теперь требуется имя
Func2 PROC ; имя теперь также следует перед
; ключевым словом PROC
.
. ; программирование в режиме
. ; MASM
IDEAL ; переключение обратно в
. ; режим Ideal
. ; программирование в
|