Требуется написать макрос для загрузки 16-битного значения в регистры r26:r27.
Для 8-битного, проблем нет. Делаю так:
Код
#define load_val(val) \
{ \
__asm__ __volatile__ \
( \
"ldi r26,%0 \n\t" \
: "M" (val) \
); \
}
Думал, что для 16 такое прокатит:
Код
#define load_val(val) \
{ \
__asm__ __volatile__ \
( \
"ldi r26,%A0 \n\t" \
"ldi r27,%B0 \n\t" \
: "M" (val) \
); \
}
оказалось ошибаюсь.
Кто знает, подскажите как быть, а то уже крыша начинает съезжать.