|
2.
Установка режимов компиляции
В значительной степени режим компиляции программы на
языке ассемблера определяется распознаваемым программой MASM
набором инструкций, часть которого может варьироваться при
помощи специальных директив. В языке ассемблера имеется
несколько директив задания набора допустимых инструкций,
список которых и, соответственно, способ кодирования
приведены ниже:
.8086
.8087
.186
.286c
.286p
.287
Директивы установки набора инструкций, если они
используются, должны располагаться в начале исходного файла.
Директива .8086 позволяет ассемблировать инструкции
микропроцессоров 8086 и 8088 и запрещает ассемблирование
инструкций процессоров 80186 и 80286. Аналогично, директива
.8087 позволяет ассемблировать инструкции арифметики с
плавающей точкой сопроцессора 8087 и запрещает использование
инструкций, специфичных для процессора 80287.
Поскольку MASM ассемблирует инструкции процессоров
8086 и 8087 по умолчанию, использования директив .8086 и
.8087 не требуется, если исходный файл содержит только
инструкции этих процессоров.
Директива .186 разрешает ассемблирование инструкций
процессора 8086 и дополнительных к ним инструкций процессора
80186. Эта директива должна использоваться в программе,
которая будет выполняться только процессором 80186.
Директива .286c разрешает ассемблирование инструкций
процессора 8086 и незащищенных инструкций процессора 80286
(они идентичны инструкциям 80186). В дополнение к этому
директива .287p позволяет ассемблировать и защищенные
инструкции процессора 80286. Директива .286c должна быть
использована в программе, которая будет выполняться только
процессором 80286 и не содержит защищенных инструкций. При
использовании директивы .286p последнее ограничение
несущественно.
Директива .287 разрешает ассемблирование инструкций
арифметики с плавающей точкой сопроцессора 80287. Эта
директива должна использоваться в программе, которая
содержит указанные инструкции и будет выполняться только
процессором 80287.
Кроме того, если программа содержит директивы .8087
- 7 -
или .287, в командной строке MASM следует при помощи опций
/R или /E определить, как ассемблировать инструкции
арифметики с плавающей точкой (использование опций MASM
описано в "Система программирования на макроассемблере в
системе MS-DOS. Часть 1. Пакет макроассемблера, п.2.3).
Использование опции /R заставляет MASM генерировать
действительные инструкции арифметики с плавающей точкой.
Опция /E обеспечивает генерацию кода, который может быть
использован программой эмуляции арифметики с плавающей
точкой.
© KOAP
Open Portal 2000
|