Istotne jest, abyś kod programu miał rozpisany w Assemblerze - nawet jeśli programujesz w C, Bascomie lub czymś innym, po kompilacji możesz podglądnąć otwierając plik BIN w np. AVR Studio lub korzystając z dowolnego disassemblera.
Każda instrukcja ma określony czas wykonania, ten czas może być różny w zależności od warunków wykonania instrukcji (np. przy skokach warunkowych). Musisz przy każdej instrukcji w programie, lub istotnym fragmencie, dopisać ilość cykli potrzebnych do jej wykonania i zsumować.
przykład:
clr r16 ; 1 cykl
petla:
nop ; 1 cykl
nop ; 1 cykl
dec r16 ; 1 cykl
brne petla ; 2/1 cykl
I ten program wykona się w:
1 + 256*(1+1+1) + 255* 2 + 1= 1280
cyklach - 1 cykl zajmie clr R16, 256 razy powtórzone 3 cykle (2x nop + 1x dec r16), 255x brne 2 cykle ( gdy został wykonany skok), 1 cykl brne (gdy nie został wykonany skok)
Przy częstotliwości 1MHz ten fragment będzie się wykonywał 1,28ms