Inline Assembler; "Impossible constraint" for byte value > 127

Looking at the avg-gcc source, the "M" constraint that you are using only allows unsigned values (0..255). There does not appear to be a constraint that would allow values in the signed range (-128..127).