Турбо Ассемблер фирмы Borland представляет собой многопроходный ассемблер с разрешением опережающих ссылок, скоростью ассемблирования до 48000 строк в минуту (на компьютере IBM PS/2, модель 60), совместимый с макроассемблером фирмы Microsoft MASM и дополнительной возможностью использования режима расширенного синтаксиса. Независимо от вашего опыта в программировании вы, несомненно, оцените эти особенности, а также ряд других средств, которые значительно облегчают программирование на Ассемблере. Среди таких средств можно кратко упомянуть следующие (подробно они будут описаны позднее):
полная поддержка процессора 80386;
улучшенная синтаксическая проверка типов;
упрощенные директивы определения сегментов;
улучшенное управление листингом;
расширения инструкций POP и PUSH;
расширенный оператор CALL с аргументами и необязательным
параметром языка;
локальные метки;
локальные идентификаторы в стеке и аргументы вызова в про
цедурах;
структуры и объединения;
вложенные директивы;
режим QUIRK, эмулирующий MASM;
полная отладка на уровне исходного текста с помощью Турбо
отладчика;
встроенная утилита генерации перекрестных ссылок (TCREF);
файлы конфигурации и командные файлы.
Турбо Ассемблер является мощным ассемблером, работающим с командной строкой, который воспринимает ваши исходные файлы (файлы с расширением .ASM) и создает из них объектные модули (файлы с расширением .OBJ). После этого вы можете использовать программукомпоновщик фирмы Borland TLINK.EXE, отличающуюся высокой скоростью компоновки, для компоновки полученных объектных модулей и создания выполняемых файлов (файлов с расширением .EXE).
Турбо Ассемблер создан для работы с процессорами серии 80х86 и 80х87 (более подробно набор инструкций процессоров серии 80х86/80х87 описан в соответствующих руководствах фирмы Intel).
Требования к программному и аппаратному обеспечению
Турбо Ассемблер работает на компьютерах семейства IBM PC, включая модели XT, AT и PS/2, а также на полностью совместимых с ними компьютерах. Для работы Турбо Ассемблера требуется операционная система MSDOS (версии 2.0 или более поздняя) и не менее 256К оперативной памяти.
Турбо Ассемблер генерирует инструкции процессоров 8086, 80186, 80286 и 80386, а также инструкции с плавающей точкой для арифметических сопроцессоров 8087, 80287 и 80287.
О данном руководстве
Описание Турбо Ассемблера поставляется в виде двух пособий:
«Руководства пользователя по Турбо Ассемблеру» (данный текст) и «Справочного руководства по Турбо Ассемблеру». В «Руководстве пользователя» даются основные инструкции по использованию Турбо Ассемблера и приводится исчерпывающее руководство по программированию на Турбо Ассемблере. В «Справочном руководстве» описываются операторы, предопределенные символы и директивы, используемые Турбо Ассемблером.
Рассмотрим содержание «Руководства пользователя» более подробно.
Руководство пользователя
В Главе 1 «Установка Турбо Ассемблера в системе» рассказывается о файлах, содержащихся на дистрибутивном диске, и о том, что нужно делать, чтобы установить в системе Турбо Ассемблер.
В Главе 2 «Начало работы с Турбо Ассемблером» содержится введение в язык программирования Ассемблер и приводится несколько простых программ, чтобы познакомить вас с параметрами, используемыми в командной строке.
В Главе 3 «Работа с командной строкой» подробно описываются все параметры командной строки, а также рассказывается о файле конфигурации и командных файлах.
В Главе 4 «Природа языка Ассемблера» обсуждаются компьютеры в целом и процессор 8088 в частности.
В Главе 5 «Основные элементы программы на Ассемблере» описываются основные компоненты Ассемблера, приводится некоторая необходимая информация о его директивах, инструкциях, обращению к памяти, сегментах и т.д.
В Глава 6 «Более подробно о программировании на Ассемблере» развивается тема Главы 5: более подробно рассказывается о программировании на Турбо Ассемблере, обсуждаются некоторые преимущества Турбо Ассемблера, более детально описываются директивы, строковые инструкции и т.д. В данной главе приводятся также некоторые типичные ошибки, с которыми вы можете встретиться при программировании.
В Главе 7 «Интерфейс между Турбо Ассемблером и Турбо Си» описывается, как использовать совместно с языком Ассемблера язык программирования высокого уровня Турбо Си. Уточняется, как можно компоновать модули Ассемблера с модулями Турбо Си, а также как вызывать из Турбо Си функции Турбо Ассемблера.
В Главе 8 «Взаимодействие Турбо Ассемблера с Турбо Паскалем» рассказывается, как можно организовать в ваших программах на языке Ассемблера интерфейс с Турбо Паскалем. В качестве примеров приводятся простые программы.
В Главе 9 «Развитое программирование на Турбо Ассемблере» более подробно освещается все то, о чем рассказывалось в предыдущих частях (префиксы переопределения сегментов, макрокоманды, директивы определения сегментов и т.д.).
В Главе 10 «Процессор 80386 и другие процессоры» описывается программирование с использованием процессора 80386.
В Главе 11 «Улучшенный режим Турбо Ассемблера» рассказывается об улучшенном режиме (Ideal Mode) и для чего его желательно использовать.
Руководство дополнено также тремя приложениями. В первых двух приложениях описывается интерфейс Турбо Ассемблера с Турбо Бейсиком и Турбо Прологом, а последнее посвящено ответам на общие вопросы.
Соглашения по обозначениям
В данном руководстве используются следующие соглашения:
Обозначение | Описание обозначения
| Столбец из точек перед строками, где описыва
. | ется синтаксис или приводится пример програм
. | мы, говорит о том, что фрагмент программы
. | опущен.
|
выражение | Слова, указанные в примерах строчными буква
| ми, показывают, что вместо них должны быть
| подставлены значения. Например, ниже при
| веден синтаксис оператора ОFFSET:
|
| OFFSET выражение
|
| Он показывает, что за оператором OFFSET может следовать любое выражение. При записи | исходного кода в соответствии с этим синтаксисом вы можете записать:
|
| OFFSET here+6
|
| где here+6 является выражением.
|
[[необ_элем]] | В двойные квадратные скобки заключается не
| обязательный синтаксический элемент. Например, синтаксис индексного оператора показан | следующим образом:
|
| [[выраж.1]][выраж.2]
|
| Это указывает на то, что «выраж.1» является | необязательным, поскольку оно заключено в | двойные квадратные скобки. Однако «выраж.2» | является обязательным и должно быть заключено | в скобки.
|
| При записи кода, соответствующего данному | синтаксису, вы должны записать [bx], отбросив | необязательное «выраж.1», или ввести test(5), | используя test в качестве «выраж.1».
|
{выбор1|выбор2}| Фигурные скобки и вертикальные разделители
| указывают на необходимость выбора между двумя | или более элементами. Варианты выбора заключаются в фигурные скобки и разделяются вертикальной чертой. Вы должны выбрать один из вариантов.
|
| Например, необязательный параметр /W (уровень | предупреждающих сообщений об ошибке) имеет | следующий синтаксис:
|
| /W{0|1|2}
|
| Вы можете ввести /W0, /W1 или /W2, указав таким образом желаемый уровень предупреждений. | Однако указывать /W3 не допускается, поскольку 3 не содержится ни в одном из вариантов | выбора, которые указаны в фигурных скобках.
|
Повторяющиеся | Три точки, следующие за элементами, показыва
элементы… | ют, что можно в таком же виде ввести большее
| количество элементов. Ниже, например, приведен синтаксис директивы PUBLIC:
|
| PUBLIC имя[[,имя]]…
|
| Точки за вторым элементом «имя» указывают, | что вы можете ввести столько имен, сколько | захотите, пока каждому из них будет предшествовать запятая. Однако, поскольку первое имя | не заключено в квадратные скобки, вы должны | ввести по крайней мере одно имя.
|
Определяемые | В кавычки заключаются определяемые в тексте
термины и | термины. Например, термин «промежуточный»,
«подсказки» | если он определяется в первый раз, заключает
| ся в кавычки.
|
НАЗВАНИЯ КЛАВИШ| Заглавными буквами указываются также названия
| клавиш и последовательностей клавиш, которые | вы должны нажимать. В качестве примеров можно | привести ENTER и CONTROL+C.
Пример: В следующем примере показано, как в данном руководстве используются соглашения по обозначениям.
TASМ[[необяз_параметры]] исх_файл[[, [[объектн_файл]][[, [[файл_листинга]][[, [[файл_перекр_ссылок]]]]]]]][[;]]
Этот синтаксис показывает, что вы должны сначала ввести имя программы (TASM), затем можно ввести какоето количество необязательных параметров, обязательно нужно ввести имя исходного файла «исх_файл», затем можно ввести имя объектного файла «объектн_файл», перед которым ставится запятая, и можно ввести также имена файла листинга «файл_листинга» (перед ним также должна указываться запятая, отделяющая это имя от имен объектного и исходного файлов) и имя файла перекрестных ссылок «файл_перекр_ссылок» (перед ним также нужно указать запятую, отделяющую это имя от имен остальных файлов).
Когда в руководстве речь идет о компьютерах IBM PC и совместимых с ними, то под этим мы подразумеваем любой компьютер, в котором используется процессор 8088, 8086, 80186, 80286 или 80386 (все процессоры этой серии мы обозначаем обычно, как 80х86).
