Опции MASM позволяют в некоторой степени управлять работой макроассемблера вне связи с исходной программой.
Каждая опция обозначается предшествующим символом /или — и может кодироваться как строчными, так и заглавными буквами.
Опции могут располагаться в любом месте командной строки или ответа на подсказку.
Ниже приведен список опций MASM с описанием выполняемых ими функций.
/A
Сегменты в объектном файле располагаются в алфавитном порядке. При отсутствии опции расположение сегментов соответствует порядку в исходном файле.
/S
Сегменты в объектном файле располагаются в порядке следования в исходном файле. Эта опция введена для совместимости с XENIX.
/B<число>
Установить размер буфера исходного файла (в килобайтах). Увеличение размера буфера ускоряет ассемблирование, но требует больше памяти.
Размер буфера может варьироваться от 1 до 63 (К). Если опция не задана, полагается 32 (32К).
/D
Диагностические сообщения после 1-го прохода поместить в листинг программы. Многие ошибки 1-го прохода исправляются на 2-м проходе, и, если не задано /D, в листинг не попадают. Задание этой опции дает более глубокую диагностику исходного текста. При спецификации /D ошибки как 1-го, так и 2-го проходов выдаются на консоль, даже если файл листинга не создается.
/D<символ>
Определить символ. Указанный символ вводится в исходный текст как пустая строка (аналогично использованию директивы EQU) и может быть использован в директивах условного ассемблирования.
/I<путь>
Задание пути поиска файлов, подключаемых в исходный текст директивой INCLUDE без явного указания пути. Указание пути в INCLUDE более приоритетно, чем в опции /I.
/ML
Установить различие между строчными и заглавными буквами в метках, переменных и именах. При отсутствии этой опции строчные буквы автоматически преобразуются в заглавные. Опция может потребоваться для совместимости с программами на регистро-чувствительных языках.
/MX
Установить различие между строчными и заглавными буквами в общих и внешних переменных. Опция подобна /ML, но ее действие распространяется лишь на имена, используемые в директивах PUBLIC или EXTRN.
/MU
Преобразовать в общих и внешних именах строчные буквы в заглавные. Опция включена по умолчанию и введена для совместимости с XENIX.
/N
Запретить вывод в файл листинга таблиц, макроструктур, записей, сегментов и имен. На генерируемый код опция не влияет.
/P
Контроль запрещенного кода. Выполнение некоторых инструкций может привести к нежелательным последствиям (например, загрузка регистра CS). Кодирование таких инструкций может быть запрещено опцией /P, наличие которой в таких случаях вызывает генерацию ошибки с кодом 100. Директива .286p отменяет эту опцию и разрешает кодирование запрещенных инструкций.
/R
Генерация кода для процессора с плавающей точкой. Генерируются коды инструкций арифметики с плавающей точкой, которые могут быть выполнены только при наличии сопроцессоров.
/E
Генерация кода для эмуляции плавающей точки.
Генерируется код, эмулирующий инструкции арифметики с плавающей точкой. Эта возможность используется при отсутствии указанных сопроцессоров.
При использовании этого режима необходимо наличие специальной библиотеки эмуляции, содержащей модули, моделирующие операции с плавающей точкой. Эта библиотека эмуляции должна использоваться при обработке объектного модуля с помощью LINK.
/V
Включить в диагностику на консоль информацию о числе обработанных строк и символов. При отсутствии этой опции на консоль выдается информация об ошибках и памяти.
/X
Выводить в листинг тела блоков IF (IF, IFE, IF1, IF2, IFDEF, IFNDEF, IFB, IFNB, IFIDN и IFDIF), для которых условия ассемблирования оказываются ложными и код по этой причине не генерируется. Следующие директивы Ассемблера влияют на действие опции /X:
u .SFCOND подавляет печать «ложных» блоков;
u .LFCOND — разрешает печать «ложных» блоков;
u .TFCOND — каждая обработка директивы меняет состояние опции на противоположное.
/Z
Выводить на консоль строки исходного файла, содержащие ошибки. При отсутствии этой опции на консоль выдаются только сообщение об ошибке и номер строки. Кодирование опции замедляет работу макроассемблера.
/C
Создать файл перекрестных ссылок. Файл создается, даже если он подавлен командной строкой или ответом на подсказку. В последнем случае имя файла устанавливается по умолчанию (<имя исходного файла>.CRF). Опция /C введена для совместимости с XENIX.
/L
Аналогично /C, но относится к файлу листинга (с учетом умалчиваемого имени файла).
/T
Подавить все сообщения, если в исходном тексте не встретится ошибок.