Program-Counter

OP (Firma: eHaJo.de) Persönliche Seite #923489
Lesenswert?

Hallo zusammen,
ich habe mich jetzt mal in die µC-Architektur von zB Atmegas eingelesen. 
Nun bin ich öfters über den Begriff Programm Counter gestolpert.
Jetzt stellt sich mir die Frage, wofür dieser eigentlich gut sein 
sollte. Weil wenn ich ein µC-Programm schreibe und auf den µC schicke 
ist dort ja genau DIESES Programm drauf. Kann es passieren, dass 
irgendwo weiter hinten im Flash Programmleichen rumliegen die dieser 
Programmcounter mitzählt oder kann man irgendwie Programme forken? 
Ansonsten sollte der Counter ja immer auf 1 stehen.

;-)
#923520
Lesenswert?

Rate mal woher der µC weiss welchen Teil deines Programmes er grade 
ausführt?

Der PC ist einfach nur ein Pointer zur aktuellen Stelle im Code. Diese 
Stelle wird dann ausgeführt, und der Pointer wird um die entsprechende 
Befehlslänge weitergesetzt.

Mit den Branch/Call-Befehlen kann der PC dann auch noch gesetzt werden 
um Verzweigungen etc. zu ermöglichen.
OP (Firma: eHaJo.de) Persönliche Seite #923617
Lesenswert?

Das wird mir jetzt glaub ich zu hoch... bzw. macht das ja gar keinen 
Sinn mehr für mich... Ich denke schon, dass ich die gesamte Archtiktur 
mittlerweile kapiert habe...
Aber was für einen Sinn sollte das haben, dass der PC dorthin zeigt wo 
das Programm gerade ist? Das würde dann ja bedeuten, dass ich duch 
Setzen des PCs an beliebige Stellen im Code springen könnte. Damit würde 
dann ja mein schön von oben bis unten ablaufendes Programm aus seinem 
Konzept gebracht!!!


;-)
#923623
Lesenswert?

Hannes Jochriem wrote:

> Setzen des PCs an beliebige Stellen im Code springen könnte. Damit würde
> dann ja mein schön von oben bis unten ablaufendes Programm aus seinem
> Konzept gebracht!!!

Das ist aber nunmal das was ein jump/branch bzw. Call macht. Der PC wird 
normal nicht direkt verändert (weiss jetzt auch garnicht ob das beim AVR 
geht). Aber irgendwie MUSS dein Prozessor ja wissen WAS er grad WO 
ausführen soll und ein Index ist dafür nunmal die effizienteste Lösung. 
System Glaskugel funktioniert halt eher selten in dem Bereich.

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