Befehlszähler

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.

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.