Код
#define load_val(val) \
{ \
__asm__ __volatile__ \
( \
"ldi r16,%0 \n\t" \
: "M" (val) \
); \
}
{ \
__asm__ __volatile__ \
( \
"ldi r16,%0 \n\t" \
: "M" (val) \
); \
}
Если вызываю так:
Код
load_val(0x23);
Все ОК!
Если так:
Код
load_val(0xFF);
выдает: ../test.c:414: warning: asm operand 0 probably doesn't match constraints
Хотя для "M" определен диапозон от 0 до 255.
В чем заморочка подскажите?