// * an empty program * #include <avr/io.h> ; main program function starts here .GLOBAL main .TEXT main: rjmp main ; an empty forever loop - never exit! ; either expected by linker, equivalent to the "old style" .ORG 0 ; or alternatively generated by the C/C++ compiler on its own accord .GLOBAL _start .TEXT _start: jmp start interrupt_vector: ; interrupt table would follow *** here *** if there are any interrupt services ; 32bits per entry, up to 34 entries reti ; 1st 16bits nop ; 2nd 16bits reti nop ; .. and so on - total 34 pairs of reti-nop OR rjmp ; this is the part of the loader program that initializes the stack etc. .TEXT start: ldi R16, 0xFF & (RAMEND>>8) out _SFR_IO_ADDR(SPH), R16 ldi R16, 0xFF & RAMEND out _SFR_IO_ADDR(SPL), R16 jmp main