lies mal das was auf microsyl steht, und auch das datenblatt des mega8 oder mega32, welchen du willst.

ein bootloader ist eigentlich ein ganz normales programm, welches inden prozessor geflasht wird, und welches daten empfängt (meist über die uart-schnittstelle) und dann mit spezielen befehlen in den flash-speicher schreibt. meist sind bootloader in assembler geschrieben, weil man dann erstens deutlich kleineren programmcode produziert, der in den bootloaderbereich geschrieben wird, und ausserdem hat man dann einfacheren zugriff auf die entsprechenden funktionen.

ausserdem müssen dann noch die fusebits für "BOOTRST" und "BOOTSZ" geändert bzw angepasst werden, damit der bootloader auch ausgefüht wird.