In Assembler kann man noch viel blödere Fehler machen, zumal es in AVR-Assembler gar keinen int Datentyp gibt, höchstens Register einzeln und im Doppelpack.
Ob man in Assembler 100 oder 1000 mal mehr Fehlermöglichkeiten hat, die erst beim Testen auffallen, darüber will ich jetzt mal nicht streiten.
Der größte Fehler ist immer, Assembler zu verwenden, obwohl es nicht nötig wäre.
Und es ist nur ganz selten nötig.
Der wichtigste Anwendungsfall für Assembler ist
asm volatile (" nop "); // Warte einen Takt