Hier also ohne die blöden code-Tags:
// Berechnet 1 << nr
static inline unsigned char
pow2_n (unsigned char nr)
{
unsigned char val;
asm ("ldi %0, 1" "\n\t"
"sbrc %1, 1" "\n\t"
"ldi %0, 4" "\n\t"
"sbrc %1, 0" "\n\t"
"lsl %0" "\n\t"
"sbrc %1, 2" "\n\t"
"swap %0"
: "=&d" (val)
: "r" (nr));
return val;
}
Lesezeichen