После директивы LISTMAC компилятор будет показывать в листинге содержимое макроса. По умолчанию в листинге показывается только вызов макроса и передаваемые параметры.
Синтаксис:
.LISTMAC
Пример:
.MACRO MACX; Определение макроса
add r0,@0; Тело макроса
eor r1,@1
.ENDMACRO; Конец макроопределения
.LISTMAC; Включить разворачивание макросов
MACX r2,r1; Вызов макроса (в листинге будет показано тело макроса)
MACRO - Начало макроса
С директивы MACRO начинается определение макроса. В качестве параметра директиве передаётся имя макроса. При встрече имени макроса позднее в тексте программы, компилятор заменяет это имя на тело макроса. Макрос может иметь до 10 параметров, к которым в его теле обращаются через @0-@9. При вызове параметры перечисляются через запятые. Определение макроса заканчивается директивой ENDMACRO.
По умолчанию в листинг включается только вызов макроса, для разворачивания макроса необходимо использовать директиву LISTMAC. Макрос в листинге показывается знаком +.
Синтаксис:
.MACRO макроимя
|
|
Пример:
.MACRO SUBI16; Начало макроопределения
subi @1,low(@0); Вычесть младший байт параметра 0 из параметра 1
sbci @2,high(@0); Вычесть старший байт параметра 0 из параметра 2
.ENDMACRO; Конец макроопределения
.CSEG; Начало программного сегмента
SUBI16 0x1234,r16,r17; Вычесть 0x1234 из r17:r16
NOLIST - Выключить генерацию листинга
Директива NOLIST указывает компилятору на необходимость прекращения генерации листинга. Листинг представляет из себя комбинацию ассемблерного кода, адресов и кодов операций. По умолчанию генерация листинга включена, однако может быть отключена данной директивой. Кроме того данная директива может быть использована совместно с директивой LIST для получения листингов отдельных частей исходных файлов
Синтаксис:
.NOLIST
Пример:
.NOLIST; Отключить генерацию листинга
.INCLUDE "macro.inc"; Вложенные файлы не будут
.INCLUDE "const.def"; отображены в листинге
.LIST; Включить генерацию листинга