В значительной степени режим компиляции программы на языке ассемблера определяется распознаваемым программой 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 |