Можно использовать константу в регистрах.
$ cat t.s
.equiv temp, 16
.text
ldi r16, 0xCC
ldi temp, 0xAA
.end
$ avr-as t.s
$ avr-objdump -d a.out
a.out: формат файла elf32-avr
Дизасемблювання розділу .text:
00000000 <.text>:
0: 0c ec ldi r16, 0xCC ; 204
2: 0a ea ldi r16, 0xAA ; 170
Действительно, я использую препроцессор для переопределения имен регистров в константы
#define r16 16 // and so on
Итак, яможно использовать арифметические выражения в макросе, например
//---------------------------------- word add
.macro add_w dst:req, src:req
add \dst, \src $ adc \dst+1, \src+1
.endm