das ist eine spezialfunktion der avr-prozessoren: der bootloader. er wurde einmal in den chip programmiert, dann wurden die lockbits gesetzt. der prozessor kann ab sofort NUR NOCH den bootloader starten. dieser jedoch darf den "rest" des speichers beschreiben und lesen. so kann er mit der infrarotschnittstelle kommunizieren, und ein enues programm empfangen, welches er in den speicher ablegt. beim nächsten neu starten des prozessors startet der bootloader, sofern er keine verbindung zum pc aufbauen kann, startet er das zuletzt empfangene programm.

und WAS für ein programm das ist, ist unerheblich - schreibe dein assemblerprogramm, und flashe es mit dem flashtool. nahcdem der bootloader fertig ist, wird dein assemblerprogramm gestartet...