Sorry, ich versuche mal verständlicher, also meine Idee ist die Uhrzeit in BCD zu packen, um es einfacher zu machen nehmen wir für jede Ziffer ein Register und machen es mit Sekunden.
Du hast sicherlich eine Taktquelle, wo Du Deinen Sekundenregister inkrementierst, dort verwenden wir jetzt 2 Register, einer für 10-er Sekunden und einer für 1-er etwa so:
Code:
....
.def sekeiner = r16
.def sekzehn = r17
...
;Taktquelle
inc sekeiner
cpi sekeiner,60
brne raus
clr sekeiner
inc sekzehn
raus:
ret
Um das alles auf LCD zu schicken muß jetzt alles in ASCII und nich bin vorliegen hier kann man ein Stück RAM nutzen um die Daten zwischenzuspeichern jetzt kommen die Zeiger zum einsatz also:
Code:
.def tmp = r18
.equ RAMPUFFER = 0x0060 ;das sollte die erste Ramzelle sein
wandeln:
ldi XH,HIGH(RAMPUFFER)
ldi XL,LOW(RAMPUFFER)
mov tmp,sekzehn
ori tmp,0x30
st X+,tmp
mov tmp,sekeiner
ori tmp,0x30
st X+,tmp
ldi tmp,'\0'
st X,tmp
ret
Jetzt liegt im Ram an der Adresse 0x60 die Zehner Zahl 0x61 einer Zahl und 0x62 die Nullterminierung.
Puh, jetzt ausgabe
Code:
ldi XH,HIGH(RAMPUFFER)
ldi XL,LOW(RAMPUFFER)
lesen:
ld tmp,X+
cpi tmp,'\0'
breq ende
;Hier Ausgabe von tmp an LCD
rjmp lesen
ende:
ret
Zugegeben für normale BCD ist das Quatch, da könnte man direkt in ASCII rechnen, aber denke mal an die gepackten BCDs 
So jetzt klarer ?
Gruß Sebastian
P.S. Ich habe das alles "Online" geschrieben und nicht geteste, sollte aber funktionieren
Lesezeichen