Forum: Mikrocontroller und Digitale Elektronik program counter


von Christian R. (christian_r)


Lesenswert?

Hallo,

ich habe eine Frage zum program counter.
Wo befindet sich dieses Register?
Liegt es auch im SRAM, wie z.b. das Statusregister?
Ich spreche übrigens vom Atmega32.

Vielen Dank!

Gruß
Christian

von Falk B. (falk)


Lesenswert?

@  Christian R. (christian_r)

>ich habe eine Frage zum program counter.
>Wo befindet sich dieses Register?

in der CPU.

>Liegt es auch im SRAM, wie z.b. das Statusregister?

Das kommt auf den Prozessor an. Wenn du den AVR meinst, dann nein. Die 
Steuerregister liegen im IO-Bereich. Siehe SFR im Artikel Speicher.
Schau mal im Datenblatt unter SPL, und SPH nach.

MfG
Falk

von Jörg G. (joergderxte)


Lesenswert?

Beim AVR kommt man gar nicht* an den Programmcounter (d.h. der liegt in 
keinem Adressbereich).

hth, Jörg
*)
-(R)CALL legt aber die aktuelle Position auf den Stack, falls es um die 
geht
- ICALL/IJMP springt an die adresse im Z-Pointer, so kann man den 
Programcounter manipulieren

von Peter D. (peda)


Lesenswert?

Der Programmcounter ist garnicht zugreifbar beim AVR.
Das ist auch niemals nötig.
Der Assembler/Compiler startet einfach an Adresse 0x0000 und zählt dann 
die Befehle mit.
Er weiß also jederzeit genau, wo er sich befindet und kann damit z.B. 
Sprünge berechnen.
Befehle können sich auch nicht vertauschen, sie bleiben immer an der 
zugewiesenen Adresse stehen.

Ein Programm muß also nirgends den Programmcounter auslesen.


Peter

von spess53 (Gast)


Lesenswert?

Hi

>Der Programmcounter ist garnicht zugreifbar beim AVR.

Macht jeder jmp-Befehl.

MfG Spess

von Jörg G. (joergderxte)


Lesenswert?

@peda:
War der Tipp nicht sogar von dir, dass man (r)call benutzen kann, um 
"wilde" Interrupts zu ermitteln, so à la:
1
;Interruptvectors
2
rjmp main
3
rcall ungenutzter_handler
4
;...
5
ungenutzter_handler:
6
    pop sicheres_reg0 ;) Reihenfolge ungetestet
7
    pop sicheres_reg1
8
    ; adresse ausgeben/-lesen
 Aber insgesamt gibt's nicht viele Gründe, beim AVR den Programcounter 
zu lesen.

hth, Jörg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.