Probiers mal mit :

volatile unsigned char x;

Ansonsten könnte dir der Compiler bei entsprecher Einstellung die Schleife einfach "wegoptimieren".
( Schau dir doch einfach mal das Assemblerlisting an, da kann man das sehr schön sehen )

MfG Kjion