Programmzähler

Aus C64-Wiki
(Weitergeleitet von Program Counter)
Zur Navigation springenZur Suche springen
Der Program Counter (PC; erste Spalte) im Maschinensprachemonitor "TEDMON" auf dem Plus/4.

Der Programmzähler bzw. der "Program Counter" (kurz: PC) ist ein Register eines Prozessors.

Beim C64[Bearbeiten | Quelltext bearbeiten]

Im C64 kommt als CPU der Prozessor MOS 6510 zum Einsatz, der eine modifizierte Variante des MOS 6502 ist. Der Programmzähler ist das einzige Register des 6510, das nicht 8, sondern 16 Bit breit ist. Das ist zwingend notwendig, da der PC die Adresse des aktuell ausgeführten Befehls enthält. Das Register muss also den Adressbereich der CPU (65536 Bytes) adressieren können, was mit 8 Bit nicht möglich wäre.

Sprungbefehle wie JMP verändern den Ablauf des Programms und setzen den PC, springen also zu gewissen Adressen, statt das Programm rein linear ("von oben nach unten") auszuführen. Über BRK sowie Signale an die CPU von außen können eine Unterbrechung (Interrupt) auslösen, wodurch die CPU vorübergehend zu einer Interrupt Service Routine (ISR) verzweigt.

Der Wert des PC wird auf den Adressbus ausgegeben, wenn der MOS 6510 einen Befehl aus dem Speicher holt. Anhand der auf dem Adressbus anliegenden Adresse sowie einigen anderen Signalleitungen entscheidet die PLA, aus welcher Quelle das der Adresse zugehörige Byte geholt bzw. wohin es geschrieben wird. Je nach Speicherkonfiguration (siehe Prozessorport sowie Speicherbelegungsplan) und Signalisierung durch Steckmodule (Signale EXROM und GAME) kann das RAM, ROM, der I/O-Bereich oder auch z.B. ein externer ROM-Baustein in einem Steckmodul sein.


Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext 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