CSEG – Code segment (CSEG – сегмент кода)
CSEG директива определяет начало сегмента кода (команд). Файл Ассем-
блера может состоять из нескольких сегментов кода, которые могут быть связаны
в один сегмент кода. Заданный по умолчанию тип сегмент - кодов. Сегменты
кода имеют собственный счетчик расположения, который является счетчиком
команд. Директива не имеет никаких параметров. Директива ORG может
использоваться для размещения кодов (команд) и констант в определенных
местах расположения в памяти программ.
Синтаксис:
.CSEG
Пример:
.DSEG ;Старт сегмента данных
vartab: .BYTE 4 ;Резервирование 4 bytes в памяти SRAM
.CSEG ;Старт кодового сегмента
const: .DW 2 ;Присвоение имени двухбайтовой
;константе(const)изначения 0x0002in prog.mem.
mov r1,r0 ;Пересылка данных регистра r0 в рег. r1.
DB – Define constant byte(s) in program memory and EEPROM
(DB – определитель постоянного байта/байтов в памяти программы и
EEPROM)
Чтобы обратиться к установленным данным DB директивой, DB директиве
должна предшествовать метка. Директива DB должна быть помещена в сегмент
кода или сегмент EEPROM.
Список выражения – последовательность значений, разграниченных запя-
тыми. Каждое выражение должно быть в пределах от – 128 до +255.
Если DB директива даётся в сегменте кода, и запись выражения содержит
больше чем одно значение, выражения упаковываются так, чтобы два байта были
помещены в одно слово памяти программы. Если запись выражения содержит
нечётное число значений, последнее значение будет помещено в собственное
слово памяти программы, даже если следующая строка в коде содержит DB
директиву.
Синтаксис:
LABEL: .DB (запись выражения)
Пример:
.CSEG
consts: .DB 0, 255, 0b01010101, -128, 0xaa
.ESEG
const2: .DB 1,2,3