.INCLUDE "имя файла"
Пример:
; Файл iodefs.asm
.E0U sreg=0x3f
; Регистр статуса.EQU sphigh=0x3e
; Старший байт стека.EOU splow=0x3d
; Младший байт стека;Файл incdemo.asm
.INCLUDE "iodefs.asm"
; Включить в текст программы файл incdemo.asmin r0.sreg
; Прочитать содержимое регистра статусаДиректива LIST включает генерацию листинга. Ассемблер генерирует листинг, содержащий исходный текст на ассемблере, адреса и коды операций. По умолчанию генерация листинга включена. В комбинации с директивой NOLIST можно организовать печать только нужных фрагментов программы.
Синтаксис:
.LIST
Пример:
.N0LIST
; Отключить генерацию листинга.INCLUDE "macro.inc"
; Включаемые файлы не будут.INCLUDE “const.def"
; показаны в листинге.LIST
; Включить генерацию листингаДиректива LISTMAC указывает транслятору ассемблера на необходимость показа в листинге содержимого макрокоманд. По умолчанию в листинге показывается только название макрокоманды.
Синтаксис:
.LISTMAC
Пример:
MACRO МАСХ
; Определить макрокомандуadd r0,@0
еог г1,@1
.ENDMACRO
; Конец определения макрокоманды.LISTMAC
МАСХ r2,r1
; Вызов макрокоманды. В листинге будет показан ее текстДиректива MACRO указывает транслятору ассемблера на начало определения макрокоманды. Параметром директивы MACRO является имя определяемой макрокоманды. В дальнейшем при обнаружении в тексте программы имени макрокоманды транслятор ассемблера будет фактически заменять это имя на содержание макрокоманды. Макрокоманда может иметь до 10 параметров. Эти параметры имеют фиксированные имена: @0…@9. При вызове макрокоманды параметры должны быть представлены в виде списка, разделенного запятыми. Определение макрокоманды завершается директивой ENDMACRO.
При определении новой макрокоманды нельзя использовать другие макрокоманды (т. е. нельзя использовать вложенные макрокоманды).
Макрокоманда должна быть определена в тексте программы до того, как ее используют.
По умолчанию в листинге генерируется только вызов макрокоманды. Чтобы получить в листинге содержимое макрокоманд, следует использовать директиву LISTMAC. Текст макрокоманды в листинге помечен символом «+».
Синтаксис:
.MACRO
Пример:
MACRO SUBI16
; Начало определения макрокомандыsubi r16,low(@0);
Вычитаем младший байтsbci r17,hlgh(@0);
Вычитаем старший байтENDMACRO;
Конец определения макрокомандыCSEG;
начало сегмента кодаSUBI16 9x1234,r16,r17
; Вычесть 0x1234 из r17:r16Примечание:
Директива NOLIST выключает генерацию листинга. Ассемблер генерирует листинг, содержащий исходный текст на ассемблере, адреса и коды операций. По умолчанию генерация листинга включена. В комбинации с директивой LIST можно организовать печать только нужных фрагментов программы.
Синтаксис:
.NOLIST
Пример:
.NOLIST;
Отключить генерацию листинга.INCLUDE "macro.inc"
; Включаемые файлы не будут.INCLUDE "const.def"
; показаны в листинге.LIST
; Включить генерацию листингаДиректива ORG присваивает абсолютное значение счетчику. Параметром директивы является значение, которое должно быть присвоено счетчику. При использовании директивы ORG в сегменте данных будет определено значение, указывающее расположение и оперативной памяти SRAM. При использовании директивы ORG в сегменте кода будет определено значение, указывающее расположение в памяти программ. При использовании директивы ORG в сегменте EEPROM будет определено значение, указывающее расположение в памяти EEPROM.