Befehlszähler

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Program Counter)
Wechseln zu: Navigation, Suche

Der Befehlszähler, auch Programmzähler oder auch Programmschrittzähler (engl. program counter, kurz PC, oder instruction counter) ist ein spezielles Register innerhalb eines Hauptprozessors (CPU) eines Computers, das je nach Systemarchitektur die Speicheradresse des derzeitigen oder des nächsten auszuführenden Befehls enthält. Da es damit auf einen Speicherbereich zeigt, wird der Befehlszähler auch als instruction pointer (IP, dt. Befehlszeiger) bezeichnet.

Wurde ein Befehl erfolgreich ausgeführt, geht der Hauptprozessor in der Befehlsfolge des Programms weiter: Der Hauptprozessor liest von der im Programmschrittzähler angegebenen Speicheradresse den nächsten Befehl aus, erhöht den Zähler und führt den Befehl aus, vgl. Von-Neumann-Zyklus.

Handelt es sich dabei um einen Sprungbefehl, so wird der Zeiger entsprechend der (explizit oder implizit) angegebenen Sprungadresse gesetzt. Bei einem Sprung mit Rückkehrabsicht (etwa dem Aufruf eines Unterprogramms oder einer Unterbrechungsbehandlungsroutine) wird der Programmschrittzähler in einem bestimmten Register, an einer definierten Stelle im Hauptspeicher oder bei den meisten modernen Prozessorfamilien auf dem Returnstack gesichert und die Verarbeitung an der Einsprungadresse des Unterprogramms fortgesetzt. Nach Beendigung des Unterprogramms wird der Programmschrittzähler innerhalb eines Rücksprungbefehls wieder auf den vorherigen Wert (beispielsweise aus dem Returnstack) zurückgesetzt und damit die Ausführung an der ursprünglichen Stelle des „unterbrochenen“ Programms fortgesetzt.