Steuerregister (engl. Control Register) bezeichnet in der Informatik bzw. Elektronik ein Register, mit dem das Verhalten einer damit verbundenen elektronischen Schaltung beeinflusst werden kann. Der Inhalt des Steuerregisters kann durch ein auf dem Computer laufendes Programm beeinflusst werden; somit kann das Computerprogramm darüber die besagte Schaltung steuern. Wenn eine Steuerinformation aus nur einem Bit besteht (also nur zwei Zustände, beispielsweise an und aus, kennt), wird auch von Flags gesprochen. Meist sind mehrere Flags in einem Steuerregister vereint. Soll die die Information in die umgekehrte Richtung fließen, also von der elektronischen Schaltung zum Computerprogramm, wird dazu ein Statusregister benutzt. Bisweilen wird die Trennung zwischen Steuer- und Statusregister sprachlich nicht sehr eng gehandhabt.
Prozessor
Ein Beispiel ist das Steuerregister im Steuerwerk eines Mikroprozessors. Es enthält verschiedene Flags, die das Verhalten des Mikroprozessors beeinflussen können. Welche Flags existieren, ist von Prozessor zu Prozessor verschieden. Häufig vorkommende Flags sind:
- Benutzermodus/Systemmodus: Steuert, ob sich der Prozessor im Benutzer- oder Systemmodus befindet.
- Interrupt Enable: Erlaubt oder verbietet maskierbare Ausnahmebehandlungen bzw. das Annehmen von Interrupts.
- Paging Enable: Ein Flag zur Steuerung der virtuellen Speicherverwaltung.
- Trace Flag: Ist dieses Flag gesetzt, so wird nach jeder Befehlsausführung eine spezielle Trace-Routine gestartet.
Häufig sind diese Flags zusammen mit Statusflags, über die das Computerprogramm etwas über den Zustand des Prozessors bzw. der laufenden Datenverarbeitung erfahren kann, in einem gemeinsamen Register untergebracht, welches meist einfach Statusregister genannt wird. Siehe Hauptartikel Statusregister.
Peripherie
An einen Computer angeschlossene Peripherie (von englisch Input/Output auch als I/O bezeichnet) wird letztlich über Steuerregister gesteuert. Auch hierbei findet im Allgemeinen ein Informationsfluss in beiden Richtungen statt, obwohl häufig nur vereinfachend von Steuerregister oder Hardwaresteuerregister gesprochen wird. Meist sind mehrere funktional zusammengehörige Steuerregister in einem Peripheriebaustein enthalten. Die Kommunikation zwischen Software und Steuerregister erfolgt dabei beispielsweise wie die zwischen Software und Arbeitsspeicher über einen Speicherbus (Memory Mapped I/O) oder einen eigenen I/O-Bus oder zumindest einen eigenen I/O-Adressraum (Isolated I/O). Andere Verfahren sind zum Beispiel Schnittstellen wie Serial Peripheral Interface (SPI) oder I²C (Inter IC Bus).
Ein Beispiel ist ein Baustein, der zur Steuerung einer parallelen Schnittstelle dient. Im einfachsten Fall hat dieser ein Steuerregister mit einem Bit für den Signalzustand jeder Signalleitung (Datenregister, Portregister) und ein weiteres Steuerregister, das für jede Signalleitung die Richtung des Signalflusses (Eingang oder Ausgang) festlegt (Datenrichtungsregister). Der zeitliche Ablauf des Kommunikationsprotokolls für die parallele Schnittstelle muss dann durch die Software (Gerätetreiber) abgebildet werden. Eine derartige oder ähnliche Mimik ist Bestandteil vieler I/O-Bausteine, beispielsweise des Versatile Interface Adapters 6522 (VIA) oder des Z80-PIO-Bausteins (PIO = Parallel Input Output).