Директивы ассемблера поставляют данные программе и управляют процессом трансляции. Директивы ассемблера дают возможность Вам делать следующее:
· Транслировать код и данные в указанные разделы.
· Резервировать пространство в памяти для неинициализированных переменных.
· Управлять видом листинга.
· Инициализировать память.
· Транслировать условные блоки.
· Определять глобальные переменные.
· Определять библиотеки, из которых ассемблер может получить макрокоманды.
· Исследовать информацию о символьной отладке.
Внимание: Метки и комментарии не показаны в синтаксисе.
Любая исходная инструкция, которая содержит директиву, может также содержать метку и комментарий. Метки начинаются в первом столбце (они - единственные элементы, кроме комментариев, которые могут появляться в первом столбце), а комментарии должны начинаться с точки с запятой или звездочки, если комментарий - единственный элемент в строке. Чтобы улучшать разборчивость, метки и комментарии не показываются, как часть синтаксиса директив. В описании части, заключенные в квадратные скобки, могут пропускаться, ассемблер будет их задавать по умолчанию.
· Разделы
| Мнемоника и синтаксис | Описание |
| .bss символ, размер в словах [, флаг блокировки [, флаг выравнивания [, тип]] | Резервирует пространство в разделе.bss (неинициализированные данные) |
| .data | Транслирует в раздел.data (инициализированные данные). |
| .sect ”имя раздела” | Транслирует в названный (инициализированный) раздел |
| .text | Транслирует в раздел.text (выполняемый код) |
| символ.usect ”имя раздела”, размер в словах [, флаг блокировки[, флаг выравнивания] | Резервирует пространство в названном разделе (неинициализированном) |
· Константы
| Мнемоника и синтаксис | Описание |
| .byte значение1[,..., значениеN] | Заносит в 16-разрядные слова байты из списка. В слово 1 байт в младшую часть. |
| .char значение1[,..., значениеN] | Заносит в 16-разрядные слова символы из списка. В слово 1 символ в младшую часть. |
| .string {выражение ”строка”} | Текстовые строки. Заносятся символы строки в младшие байты последовательных слов. То же самое делает.char со списком символов. |
| .pstring {выраж.1 ”строка1”} [,…,{выраж.N ”строкаN”}] | Аналог.string. Заносятся символы строки в оба байта последовательных слов. |
| .field значение[, размер] | Инициализирует подполя в константе размером 16 бит. Для каждого подполя задаются значение и размер. При последовательном применении константа заполняется справа налево. Применяется для упаковки нескольких значений в одном месте. |
| .int значение1[,...,значениеN] | Заносит в 16-разрядные слова 16-разрядные целые числа из списка. Есть выравнивание по границам слов. |
| .longзначение1 [,...,значениеN] | Заносит в 16-разрядные слова 32-разрядные целые числа из списка. На одно значение 2 слова. Есть выравнивание по границам слов. |
| .xlongзначение1 [,...,значениеN] | То же, что.long. Нет выравнивания по границам слов. |
| .word значение1 [,...,значениеN] | Заносит в 16-разрядные слова 16-разрядные числа из списка. Есть выравнивание по границам слов. |
| .float значение1[,...,значениеN] | Заносит в 16-разрядные слова 32-битные константы с ПТ, IEEE с однократной точностью из списка. На одно значение 2 слова. Есть выравнивание по границам слов. |
| .xfloat значение1 [,...,значениеN] | То же, что.flooat. Нет выравнивания по границам слов. |
· Выравнивания
| Мнемоника и синтаксис | Описание | |
| .align [размер в словах] | Выравнивает SPC на границе, указанной размером в байтах, который должен быть степенью 2; по умолчанию – до границы | |
| .bes [размер в битах] | Резервирует биты в текущем разделе. Метка указывает на конец резервируемого пространства | |
| .space [размер в битах] | Резервирует биты в текущем разделе. Метка указывает на начало резервируемого пространства |
· Листинг
| Мнемоника и синтаксис | Описание | |
| .drlist | Допускает распечатку всех строк директив (по умолчанию). | |
| .drnolist | Подавляет распечатку определенных строк директив. | |
| .fclist | Позволяет распечатку ложного условного блока (по умолчанию). | |
| .fcnolist | Подавляет распечатку ложного условного блока кода. | |
| .length [длина страницы] | Устанавливает длину страницы листинга программы | |
| .list | Повторный запуск распечатки программы | |
| .mlist | Позволяет распечатку макрокоманд и блоков циклов(по умолчанию) | |
| .mnolist | Подавляет распечатку макрокоманд и блоков циклов | |
| .nolist | Останавливает распечатку программы | |
| .option опция1 [, опция2,...] | Выбирает опции листинга; доступны опции - A,B,D,H,L,М,N,O,R,T,W и X | |
| .page | Пропускает страницу в распечатке программы | |
| .sslist | Позволяет расширенный листинг символов замены | |
| .ssnolist (по умолчанию) | Подавляет расширенный листинг символов замены | |
| .tab размер | Устанавливает размер знаков табуляции (в символах) | |
| .title “строка” | Печатает заголовок в начале страницы листинга | |
| .width [ширина страницы] | Устанавливает ширину страницы распечатки программы |
· Файлы
| Мнемоника и синтаксис | Описание | |
| .copy [“]имя файла[“] | Включает исходные инструкции из другого файла | |
| .def символ1 [,...,символN] | Идентифицирует один или более символов, которые определены в текущем модуле и могут использоваться в других модулях | |
| .global символ1 [,...,символN] | Идентифицирует один или более глобальных символов | |
| .include [“]имя файла[“] | Включает исходные инструкции из другого файла | |
| .mlib [“]имя файла[“] | Определяет библиотеку макрокоманд | |
| .ref символ1 [,...,символN] | Идентифицирует один или более символов, используемых в текущем модуле, которые определены в другом модуле |
· Условная трансляция
| Мнемоника и синтаксис | Описание | |
| .break [четкое выражение] | Заканчивает трансляцию.loop, если четкое выражение - истина. При использовании конструкции.loop, конструкция.break - необязательна | |
| .else | Транслирует блок кода, если (.if четкое выражение) является ложным. При использовании конструкции.if, конструкция.elsе необязательна | |
| .elseif четкое выражение | Транслирует блок, если.if четкое выражение является ложным, а условие.elseif - истинно. При использовании конструкции.if, конструкция.elseif - необязательна | |
| .endif | Заканчивает блок кода.if | |
| .endloop | Заканчивает блок кода.loop | |
| .if четкое выражения | Транслирует блок, если четкое выражение является истинным | |
| .loop [четкое выражение] | Начинает повторяемую трансляцию кодового блока; счетчик цикла определен четким выражением |
· Структуры
| Мнемоника и синтаксис | Описание |
| .struct | Начало структуры. Это коллекция однотипных данных. Для данных, используемых совместно в исходниках Ассемблера и языка С++. |
| .cstruct | Начало структуры с выравниванием и размещением. Для данных, используемых совместно в исходниках Ассемблера и языка С++. |
| .endstruct | Конец структуры. |
| .union | Начало юниона. Это коллекция разнотипных данных. Для данных, используемых совместно в исходниках Ассемблера и языка С++. |
| .endunion | Конец юниона. |
| .tag | Приписывает атрибуты структуры метке |
· Символы во время трансляции
| Мнемоника и синтаксис | Описание | |
| .asg [“]строка знаков[“], символ замены | Назначает строку знаков символу замены | |
| .eval четкое выражение, символ замены | Исполняет арифметику на числовом символе замены. | |
| .label символ | Определяет переместимую во время загрузки метку в разделе. | |
| символ.set значение | Приравнивает значение символу. |
· Разные директивы
| Мнемоника и синтаксис | Описание | |
| .asmfunc | Начало блока кода для функции | |
| . cdecls [options,]"filename" [, "filename2"[,...] | Согласование дескрипторов для кодов C и ассемблера. | |
| .clink [”имя раздела”] | Допускает условную компоновку для текущего или указанного раздела | |
| .emsg строка | Посылает определяемые пользователем сообщения об ошибке устройству вывода; не производит объектный файл | |
| .end | Заканчивает программу | |
| .endasmfunc | Конец блока кода для функции | |
| .mmsg строка | Посылает определяемые пользователем сообщения устройству вывода | |
| .newblock | Снимает определение локальных меток | |
| .sblock | Создание раздела блокирования | |
| .wmsg строка | Посылает определяемые пользователем предупреждающие сообщения устройству вывода |






