КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА - Турбо Ассемблер 3.0/tasm/#2-2

Индекс материала
Турбо Ассемблер 3.0/tasm/#2-2
Стр. 2
Стр. 3
Стр. 4
Стр. 5
Стр. 6
Стр. 7
Стр. 8
Стр. 9
Стр. 10
Стр. 11
Стр. 12
Стр. 13
Стр. 14
Стр. 15
Стр. 16
Стр. 17
Стр. 18
Стр. 19
Стр. 20
Стр. 21
Стр. 22
Стр. 23
Стр. 24
Стр. 25
Стр. 26
Стр. 27
Стр. 28
Стр. 29
Стр. 30
Стр. 31
Стр. 32
Стр. 33
Стр. 34
Стр. 35
Стр. 36
Стр. 37
Стр. 38
Стр. 39
Стр. 40
Стр. 41
Стр. 42
Стр. 43
Стр. 44
Стр. 45
Стр. 46
Стр. 47
Стр. 48
Стр. 49
Стр. 50
Стр. 51
Стр. 52
Стр. 53
Стр. 54
Все страницы
     Турбо Ассемблер 3.0/tasm/#2-2                               = 1 =

   Глава 13. Расширенные инструкции..................................9
     Эффективная генерация кода: директивы SMART и NOSMART...........9
     Расширенные инструкции перехода................................10
     Дополнительные инструкции цикла процессора 80386...............11
     Дополнительные инструкции ENTER и LEAVE........................11
     Дополнительные инструкции возврата.............................11
     Расширенные инструкции PUSH и POP..............................12
     Инструкции PUSH и POP с несколькими операндами.................13
     Использование в инструкциях PUSH и POP указателей..............13
     Занесение в стек константа (процессор 8086)....................13
     Расширенные инструкции сдвига..................................15
     Принудительное переопределение сегментов: инструкции SEGxx.....15
     Дополнительные инструкции работы с флагами.....................16
     Дополнительные инструкции работы с битами полей................17
     Инструкция GETFIELD............................................19
     Дополнительная быстрая инструкции непосредственного
      умножения.....................................................19
     Расширение необходимых инструкций для процессора 80386.........20
     Вызов процедур с кадрами стека.................................22
     Вызываемые процедуры, содержащие RETURNS.......................23
     Вызов процедур методов для объектов: CALL...METHOD.............23
     Остаточная рекурсия для методов объектов: инструкция
      JMP...METHOD..................................................25
     Дополнительные инструкции для объектного программирования......25
   Глава 14. Использование макрокоманд..............................26
     Текстовые макрокоманды.........................................26
     Определение текстовых макрокоманд с помощью директивы EQU......26
     Директивы макрокоманд работы с текстовыми строками.............27
     Директива CATSTR...............................................28
     Директива SUBSTR...............................................28
     Директива INSTR................................................28
     Директива SIZESTR..............................................28
     Примеры макрокоманд работы с текстом...........................29
     Макрокоманды, состоящие из нескольких строк....................29
     Тело макрокоманды, состоящей из нескольких строк...............29
     Использование в макрокомандах символа &........................30
     Включение комментариев в тело макрокоманды.....................31
     Локальные формальные аргументы.................................31
     Директива EXITM................................................33
     Директива GOTO и макроидентификаторы перехода..................33
     Общие макрокоманды, состоящие из нескольких строк..............34
     Вызов общей макрокоманды, состоящей из нескольких строк........36
     Литеральные строки в угловых скобках...........................37
     Символ !.......................................................37
     Символ вычисления выражения %..................................38
     Переопределение общей макрокоманды, состоящей из нескольких
      строк.........................................................38
     Удаление общей макрокоманды: директива PURGE...................38
     Определение вложенных и рекурсивных макрокоманд................39
     Счетчик повторения макрокоманды................................40
     Директива WHILE................................................41
     Макрокоманды повторения строк..................................41
     Непосредственная макродиректива %..............................42

     Турбо Ассемблер 3.0/tasm/#2-2                               = 2 =

     Включение расширения макрокоманды в файл листинга..............43
   Глава 15. Использование условных директив........................44
     Синтаксис условных директив....................................44
     Директива условного ассемблирования IFxxx......................45
     Директивы условного ассемблирования ELSEIFxxx..................47
     Директивы генерации сообщений об ошибке ERRxx..................48
     Описания конкретных директив...................................49
     Безусловные директивы генерации сообщений об ошибке............49
     Условные директивы с выражениями...............................49
     Условные директивы с идентификатором...........................50
     Условные директивы с текстовыми строками.......................52
     Условия выполнения прохода Ассемблером.........................56
     Включение условных директив в файл листинга....................56
   Глава 16. Интерфейс с компоновщиком..............................58
     Описание внешних идентификаторов...............................58
     Соглашения для конкретного языка...............................58
     Описание общедоступных идентификаторов.........................58
     Описание идентификаторов библиотеки............................59
     Определение внешних идентификаторов............................60
     Описание глобальных идентификаторов............................60
     Определение общих переменных...................................60
     Включение библиотеки...........................................62
   Глава 17. Генерация листинга.....................................63
     Формат листинга................................................63
     Общие директивы управления листингом...........................64
     Директивы листинга включаемых файлов...........................65
     Директивы вывода блоков условного ассемблирования..............66
     Директивы вывода в файл листинга макрокоманд...................67
     Директивы вывода листинга перекрестных ссылок..................67
     Параметры изменения формата листинга...........................69
   Глава 18. Интерфейс Турбо Ассемблера и Borland C++...............73
     Вызов из Borland C++ функций Турбо Ассемблера..................74
     Основные моменты в интерфейсе Турбо Ассемблера и Borland
      C++...........................................................76
     Компоновка ассемблерных модулей с С++..........................77
     Использование Extern "C" для упрощения компоновки..............78
     Модели памяти и сегменты.......................................79
     Упрощенные директивы определения сегментов и Borland C++.......79
     Старые директивы определения сегментов и Borland C++...........80

     Значения по умолчанию: когда необходимо загружать сегменты?....83
     Общедоступные и внешние идентификаторы.........................86
     Подчеркивания и язык Си........................................86
     Различимость  строчных и прописные символов в
      идентификаторах...............................................88
     Типы меток.....................................................88
     Внешние дальние идентификаторы.................................90
     Командная строка компоновщика..................................91
     Взаимодействие между Турбо Ассемблером и Borland C++...........93
     Передача параметров............................................93
     Сохранение регистров..........................................101
     Возврат значений..............................................102
     Вызов функции Турбо Ассемблера из Borland C++.................104
     Написание на языке Ассемблера функций-элементов С++...........108

     Турбо Ассемблер 3.0/tasm/#2-2                               = 3 =

     Соглашения по вызовам, использующиеся в Паскале...............110
     Вызов Borland C++ из Турбо Ассемблера.........................111
     Компоновка с кодом инициализации С++..........................112
     Задание сегмента..............................................112
     Выполнение вызова.............................................112
     Вызов из Турбо Ассемблера функции Borland C++.................114
   Глава 19. Интерфейс Турбо Ассемблера с Турбо Паскалем...........117
     Совместное с Турбо Паскалем использование данных..............118
     Директива компилятора $L и внешние подпрограммы...............118
     Директива PUBLIC..............................................119
     Директива EXTRN...............................................119
     Ограничения при использовании объектов типа EXTRN.............122
     Использование корректировок сегментов.........................123
     Устранение неиспользуемого кода...............................125
     Соглашения Турбо Паскаля по передаче параметров...............125
     Параметры-значения............................................125
     Скалярные типы................................................125
     Вещественные значения.........................................126
     Типы Single, Double, Extended и Comp и типы сопроцессора
      8087.........................................................126
     Указатели.....................................................126
     Строки........................................................126
     Записи и массивы..............................................126
     Множества.....................................................127
     Параметры-переменные..........................................127
     Обеспечение стека.............................................127
     Доступ к параметрам...........................................128
     Использование для адресации к стеку регистра BP...............128
     Директива ARG.................................................129
     Турбо Паскаль и директива .MODEL..............................130
     Использование другого базового или индексного регистра........131
     Результаты функции в Турбо Паскале............................131
     Выделение пространства для локальных данных...................132
     Выделение статической памяти..................................132
     Выделение временной памяти....................................133
     Примеры подпрограмм на Ассемблере для Турбо Паскаля...........135
     Подпрограмма шестнадцатиричного преобразования общего
      назначения...................................................135
     Пример обмена содержимого двух переменных.....................138
     Пример анализа операционной среды DOS.........................141
 Часть 2. ПРИЛОЖЕНИЯ.............................................147
   Приложение A. Замечания по программированию.....................148
     Упрощенные директивы определения сегмента.....................148
     Программы DOS.................................................150
     Замечания по программам формата EXE...........................151
     Замечания по программам формата COM...........................152
     Программы Windows.............................................153
     Замечания по динамически компонуемым библиотекам Windows......153
     Замечания по прикладным программам Windows....................154
   Приложение B. Обзор синтаксических правил Турбо Ассемблера......156
     Лексическая грамматика........................................156
     Грамматика выражений в режиме MASM............................158
     Грамматика выражений в режиме Ideal...........................160

     Турбо Ассемблер 3.0/tasm/#2-2                               = 4 =

     Старшинство ключевых слов.....................................162
     Старшинство операций в режиме Ideal...........................162
     Старшинство операций в режиме MASM............................162
     Ключевые слова и предопределенные идентификаторы..............163
     Ключевые слова директив.......................................163
   Приложение C. Вопросы совместимости.............................168
     Одно- и двухпроходные режимы ассемблирования..................169
     Переменные операционной среды.................................170
     Формат фирмы Microsoft для двоичных чисел с плавающей
      точкой.......................................................170
   Приложение D. Утилиты Турбо Ассемблера..........................171
     Утилита-преобразователь H2ASH.................................171
   Приложение E. Сообщения об ошибках..............................174
     Информационные сообщения......................................174
     Предупреждающие сообщения и сообщения об ошибках..............176
     32-bit segment not allowed without .386.......................176
     Argument needs type override..................................176
     Argument to operation or instruction has illegal size.........177
     Arithmetic overflow...........................................177
     ASSUME must be segment register...............................177
     Bad keyword in SEGMENT statement..............................177
     Can't add relative quantities.................................177
     Can't address with currently ASSUMEd segment registers........178
     Can't convert to pointer......................................178
     Can't emulate 8087 instruction................................178
     Can't make variable public....................................179
     Can't override ES segment.....................................179
     Can't subtract dissimilar relative quantities.................179
     Can't use macro name in expression............................179
     Can't use this outside macro..................................179