у кого спросить можно про код из стандартной библиотеки AVR.
Вот такой код что делает не могу понять
#define LPM_classic(addr) \
(extension({ \
uint16_t addr16 = (uint16_t)(addr); \
uint8_t __result; \
__asm volatile \
( \
"lpm" "\n\t" \
"mov %0, r0" "\n\t" \
: "=r" (__result) \
: "z" (__addr16) \
: "r0" \
); \
__result; \
}))