program counter

#1434230
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
#1434320
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
#1434351
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

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