Dass man mitunter Interrupts sperren muss ist mir eigentlich klar. Aber ist das auch bei Zeilen wie

REGISTER |= 1;

erforderlich?
Das Register müsste ja gelesen, der Wert verodert und anschließend wieder geschrieben werden. Wenn sich nun zwischen dem Lesen und dem Schreiben ein Interrupt schiebt, dann kann der ja den Registerinhalt verändern. Oder irre ich mich da?

Oder, wie kann man sich mit AvrStudio genau eine bestimmte C-Zeile im Assembler ansehen, um obiges Beispiel zu untersuchen?