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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.