Микроконтроллеры семейства AVR. Воробьева Г.С. - 17 стр.

UptoLike

Составители: 

Синтаксис:
МЕТКА: .DW expressionlist
Пример:
.CSEG
varlist: .DW 0, 0xffff, 0b1001110001010101, -32768, 65535
.ESEG
eevarlst: .DW 0,0xffff,10
.ENDMACRO - Конец макроса
Директива определяет конец макроопределения, и не принимает
никаких параметров. Для информации по определению макросов
смотрите директиву MACRO.
Синтаксис:
.ENDMACRO
Пример:
.MACRO SUBI16 ; Начало определения макроса
subi r16,low(@0) ; Вычесть младший байт первого параметра
sbci r17,high(@0) ; Вычесть старший байт первого параметра
.ENDMACROъ
.EQU – Присвоить символьное имя
Директива EQU присваивает метке значение. Эта метка может
позднее использоваться в выражениях. Метка которой присвоено
значение данной директивой не может быть переназначена и её
значение не может быть изменено.
Синтаксис:
.EQU метка = выражение
Пример:
.EQU io_offset = 0x23
.EQU porta = io_offset + 2
.CSEG ; Начало сегмента данных
clr r2 ; Очистить регистр r2
out porta,r2 ; Записать в порт A
.ESEG - Сегмент EEPROM
Директива ESEG определяет начало сегмента EEPROM. Исходный
файл может состоять из нескольких сегментов EEPROM, которые
объединяются в один сегмент при компиляции. Сегмент EEPROM
обычно состоит только из директив DB, DW и меток. Сегменты
EEPROM имеют свои собственные побайтные счётчики положения.
Директива ORG может быть использована для размещения переменных
в необходимом месте EEPROM. Директива не имеет параметров.
Синтаксис:
.ESEG
Пример:
.DSEG ; Начало сегмента данных
var1: .BYTE 1 ; зарезервировать 1 байт для var1
table: .BYTE tab_size ; зарезервировать tab_size байт.
.ESEG
eevar1: .DW 0xffff ; проинициализировать 1 слово в EEPROM
17