Турбо Ассемблер 3.0/tasm/#1-2
Введение........................................................7
Требования к программному и аппаратному обеспечению.............8
Поддержка DPMI..................................................8
О данной документации...........................................9
Руководство пользователя........................................9
Соглашения по обозначениям.....................................11
Как обратиться за помощью к фирме Borland......................12
Ресурсы вашего пакета..........................................13
Возможности фирмы Borland......................................13
ЧАСТЬ 1. ИСПОЛЬЗОВАНИЕ ТУРБО АССЕМБЛЕРА............................15
Глава 1. Начало работы на Турбо Ассемблере.......................16
Установка Турбо Ассемблера в системе...........................16
Текстовые справочные файлы.....................................17
Файл README....................................................17
Файл HELPME!.TSM...............................................18
Файл H2ASH.TSM.................................................18
Файл TCREF.TSM.................................................18
Оперативный справочник.........................................18
Ваша первая программа на Турбо Ассемблере......................19
Ассемблирование вашей первой программы.........................21
Компоновка программы...........................................23
Запуск вашей первой программы..................................23
Что происходит?................................................23
Модификация вашей первой программы на Турбо Ассемблере.........25
Вывод информации на устройство печати..........................27
Ваша вторая программа на Турбо Ассемблере......................28
Запуск программы REVERSE.ASM...................................30
Литература по языку Ассемблера.................................30
Глава 2. Использование директив и параметров.....................32
Запуск Турбо Ассемблера из DOS.................................32
Параметры командной строки.....................................37
Параметр /A....................................................37
Параметр /B....................................................38
Параметр /C....................................................38
Параметр /D....................................................38
Параметр /E....................................................39
Параметр /H или /?.............................................40
Параметр /I....................................................40
Параметр /J....................................................41
Параметр /KH...................................................41
Параметр /L....................................................42
Параметр /LA...................................................42
Параметр /M....................................................43
Параметр /ML...................................................43
Параметр /MU...................................................44
Параметр /MV#..................................................45
Параметр /MX...................................................45
Параметр /N....................................................46
Параметр /O....................................................46
Параметр /OP...................................................46
Параметр /P....................................................46
Параметр /Q....................................................47
Параметр /R....................................................47
Турбо Ассемблер 3.0/tasm/#1-2 = 2 =
Параметр /S....................................................48
Параметр /T....................................................48
Параметр /V....................................................49
Параметр /W....................................................49
Параметр /X....................................................50
Параметр /Z....................................................51
Параметр /ZD...................................................51
Параметр /ZI...................................................52
Параметр /ZN...................................................52
Косвенные командные файлы......................................53
Файлы конфигурации.............................................53
Глава 3. Общие принципы программирования.........................55
Режим Ideal Турбо Ассемблера...................................55
Для чего используется режим Ideal?.............................56
Переключение в режим Ideal и выход из него.....................56
Отличия режима Ideal и режима MASM.............................58
Выражения и операнды...........................................59
Операции.......................................................60
Подавление корректировок.......................................60
Операнд инструкции BOUND.......................................60
Сегменты и группы..............................................61
Доступ к данным в сегменте, принадлежащем группе...............61
Комментарии в программах.......................................63
Комментарии в конце строки.....................................63
Директива COMMENT..............................................64
Продолжение строки.............................................64
Использование включаемых файлов................................65
Предопределенные идентификаторы................................66
Присваивание идентификаторам значений..........................67
Общая структура модуля.........................................68
Директива VERSION..............................................68
Директива NAME.................................................69
Директива END..................................................69
Вывод сообщения в процессе ассемблирования.....................70
Вывод предупреждающих сообщений................................70
Вывод нескольких сообщений об ошибках..........................72
Глава 4. Объектно-ориентированное программирование...............73
Терминология...................................................73
Для чего в Турбо Ассемблере используются объекты?..............74
Что такое объект?..............................................74
Пример объекта.................................................75
Описание объектов..............................................76
Описание процедуры методa......................................80
Таблица виртуальных методов....................................81
Инициализация таблицы виртуальных методов......................82
Вызов метода объекта...........................................82
Вызов статического метода......................................82
Вызов виртуального метода......................................83
Вызов виртуальных методов "предков"............................86
Кое-что еще о вызове методов...................................87
Создание экземпляра объекта....................................88
Программирование с объектами...................................88
Пример из области программирования.............................89
Турбо Ассемблер 3.0/tasm/#1-2 = 3 =
Глава 5. Использование выражений и значений идентификаторов......91
Константы......................................................91
Числовые константы.............................................91
Изменение используемого по умолчанию основания.................92
Строковые константы............................................93
Идентификаторы.................................................93
Имена идентификаторов..........................................93
Типы идентификаторов...........................................94
Адресные подтипы данных........................................94
Описание сложного адресного подтипа............................96
Выражения......................................................97
Точность в выражениях..........................................98
Константы в выражениях.........................................98
Идентификаторы в выражениях....................................98
Регистры.......................................................99
Стандартные значения идентификаторов..........................100
Значения простых идентификаторов..............................100
Унарная операция LENGTH.......................................102
Унарная операция WIDTH........................................105
Унарная операция MASK.........................................106
Общие арифметические операции.................................106
Простые арифметические операции...............................107
Логические арифметические операции............................108
Поразрядные операции сдвига...................................108
Операции сравнения............................................109
Задание адресного подтипа выражения...........................110
Получение типа выражения......................................111
Переопределение сегментной части адресного выражения..........112
Получение сегмента и смещения адресного выражения.............112
Создание адресного выражения, использующего счетчик
инструкций...................................................113
Определение характеристик выражения...........................113
Ссылки на структуры, объединения и смещения элементов в
таблице......................................................114
Описание содержимого адреса...................................115
Подразумеваемое сложение......................................115
Получение значения старшего или младшего байта выражения......115
Задание 16- или 32-разрядных выражений........................116
Глава 6. Директивы выбора процессора и идентификаторы
процессора...................................................118
Директивы процессоров iAPx86..................................118
Предопределенные идентификаторы...............................120
Идентификатор @Cpu............................................121
Идентификатор @WordSize.......................................123
Директивы сопроцессора 8087...................................123
Директивы эмуляции сопроцессора...............................124
Глава 7. Использование моделей памяти программы и
сегментации..................................................126
Директива MODEL...............................................127
Идентификаторы, генерируемые директивой MODEL.................133
Идентификатор @Model..........................................133
Идентификатор @32Bit..........................................133
Идентификатор @CodeSize.......................................133
Турбо Ассемблер 3.0/tasm/#1-2 = 4 =
Идентификатор @DataSize.......................................133
Идентификатор @Interface......................................134
Упрощенные сегментные директивы...............................135
Идентификаторы, создаваемые упрощенными директивами
сегментации..................................................138
Директива STARTUPCODE.........................................139
Идентификатор @Startup........................................139
Директива EXITCODE............................................139
Определение общих сегментов и групп...........................139
Директива SEGMENT.............................................140
Атрибут комбинирования сегментов..............................141
Атрибут класса сегмента.......................................142
Атрибут выравнивания сегмента.................................142
Атрибут размера сегмента......................................144
Атрибут доступа к сегменту....................................145
Директива ENDS................................................145
Директива GROUP...............................................146
Директива ASSUME..............................................146
Переопределение сегмента......................................147
Изменение упорядочивания сегментов в модуле...................149
Директива .ALPHA..............................................149
Директива .SEQ................................................149
Директива DOSSEG: упорядочивание сегментов в порядке DOS......149
Изменение размера стека.......................................150
Глава 8. Определение типов данных...............................151
Определение перечислимых типов данных.........................151
Определение записей с битовыми полями.........................152
Определение структур и объединений............................154
Открытие определения структуры или объединения................155
Задание элементов структуры и объединения.....................156
Определение меток элементов структур с помощью директивы
LABEL........................................................157
Выравнивание элементов структуры..............................157
Закрытие определения структуры или объединения................158
Вложенные структуры и объединения.............................158
Включение одной именованной структуры в другую................160
Использование имен структур в выражениях......................162
Определение таблиц............................................162
Переопределение элементов таблицы.............................165
Определение именованного типа.................................165
Определение объекта...........................................165
Директива TBLPTR..............................................167
Идентификаторы, определяемые расширенной директивой STRUC.....168
Глава 9. Задание и использование счетчика адреса................169
Идентификатор счетчика адреса $...............................169
Директивы счетчика адреса $...................................169
Директива ORG.................................................170
Директивы EVEN и EVENDATA.....................................172
Директива ALIGN...............................................173
Определение меток.............................................173
Операция :....................................................173
Директива LABEL...............................................175
Директива ::..................................................176
Турбо Ассемблер 3.0/tasm/#1-2 = 5 =
Глава 10. Описание процедур.....................................177
Синтаксис определения процедур................................177
Описание процедур NEAR или FAR................................178
Описание языка процедуры......................................180
Задание модификатора языка....................................183
Определения аргументов и локальных переменных.................184
Синтаксис директив ARG и LOCAL................................186
Область действия аргументов и имен локальных переменных.......188
Сохранение регистров..........................................189
Вложенные процедуры и правила области действия................189
Описание процедур методов для объектов........................191
Глава 11. Управление областью действия идентификаторов..........193
Переопределяемые идентификаторы...............................193
Область действия в границах блока.............................194
Директивы LOCALS и NOLOCALS...................................195
Область действия в границах блока в MASM......................195
Локальные метки в стиле MASM..................................196
Глава 12. Определение данных....................................197
Простые директивы определения данных..........................198
Создание экземпляра структуры или объединения.................202
Инициализация экземпляра структуры или объединения............203
Создание экземпляра записи....................................207
Инициализация экземпляров записи..............................207
Создание экземпляра данных перечислимого типа.................208
Инициализация экземпляра перечислимого типа данных............209
Создание экземпляра таблицы...................................209
Инициализация экземпляров таблицы.............................209
Создание и инициализация экземпляра именованного типа
данных.......................................................210
Создание экземпляра объекта...................................211
Создание экземпляра таблицы виртуальных методов объекта.......211
Используются технологии
uCoz