ПРОГРАММАСПРАВОЧНИК по системе программирования ТУРБО АССЕМБЛЕР 2.0. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ


Турбо Ассемблер фирмы 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).