Programmzähler

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Der Program Counter (PC; erste Spalte) im Maschinensprachemonitor "TEDMON" auf dem Plus/4.

Der Programmzähler bzw. der "Program Counter" (kurz: PC; siehe auch TEDMON ab BASIC 3.5 und TIM) ist ein Register im 6502- und im 6510-Prozessor.

Er ist das einzige Register der CPU, das nicht 8- sondern 16-Bit groß ist. Das ist zwingend notwendig, da der PC die RAM-Adresse des aktuell laufenden Befehls enthält. Das Register muss also mindestens 65536 Byte adressieren können, was mit 8-Bit nicht möglich wäre.

Der Wert des PC wird auf den Adressbus ausgegeben, wenn die CPU 6510 einen Befehl aus dem Programmspeicher holt. Danach erhöht die CPU 6510 den PC automatisch, um die Operanden der nächsten Adresse zu bearbeiten. Programmierer kann diesbezüglich natürlich auch andere Anweisungen geben und den Ablauf des Programmes weiterspringen lassen, wiederholen, verzweigen oder unterbrechen. Dafür gibt es verschiedene Sprungbefehle, wie z.B. den Assemblerbefehl JMP).


Wenn man eine Speicherweiterung oder auch ein großes ROM am C64 verwenden, kann der Programmzähler nicht mehr auf gewohnte Art adressieren. Die übliche Methode um die 64Kbyte-Grenze zu umgehen ist der Wechsel zwischen verschiedenen Speicherbänken, sogenanntes Bankswitching, das der C64 auch im Normalbetrieb in vielen Bereichen einsetzt.


Weblinks[Bearbeiten]

WP-W11.png Wikipedia: Befehlszähler
WP-W11.png Wikipedia: Register (Computer)
WP-W11.png Wikipedia: Harvard-Architektur
WP-W11.png Wikipedia: Von-Neumann-Architektur