Programmablaufzeit berechnen

Gast #1773164
Lesenswert?

Hallo habe ein kleines Problem damit bei der folgenden Befehlssequenz 
die Ablaufzeit zu Berechnen weil ich nich genau weiß wann das Carry Flag 
nun wirklich gesetzt wird.

start: push r17
       clc
       ldi r17,0x00
st01:  dec r17
       brcs st01
       pop r17
       ret

nun ist es ja eigentlich so das der dec-Befehl keinen Einfluss auf das 
Carryflag hat.

Nun ist meine Frage läuft die Schleife dann 255 mal durch und dann wird 
das C-Flag gesetzt oder wird es trotzdem nach dem erstenmal dec gesetzt 
weil ein Überlaufstattfindet?

Zyklen
push 2
clc 1
ldi 1
dec 1
brcs1/2
pop 2

der ATmega ist mit 8 MHz getaktet also hat damit eigentlich eine 
Zykluszeit von 125 ns.

wenn mir jemand helfen könnte wäre das sehr schön

Danke
Gast #1773218
Lesenswert?

Hi

>sprich das programm rent einmal nach unten durch ohne nochmal auf die
>Marke zu springen?

Ja. 'DEC' beeinflußt das Carry-Flag nämlich nicht. Und da du C löscht 
bleibt dem Programm nichts anderes übrig.

Was hast du denn vor?

MfG Spess
Gast #1773252
Lesenswert?

das is ne Prüfungsaufgabe und ich wollte sehn ob mein Gedankengang 
richtig war das ich am ende auf 1,25 us komme ^^ da ich nächsten 
Mittwoch Prüfung habe und ich grad die Probeklausur rechne.

Und Danke an Euch die mir geholfen haben ^^

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren