Prozessorgrundlagen: Von-Neumann-Architektur, Teil 3

Befehlssatz

In der Praxis existiert kein Mikroprozessor mit nur einem Befehl. Minimal ausgelegte Befehlssätze liegen bei zirka 30 Instruktionen. Im Rahmen der CISC-Philosophie (Complex Instruction Set Computing) wurden sogar Befehlssätze mit möglichst vielen, dann auch komplexen Befehlen favorisiert. Dagegen geht die RISC-Philosophie von einfachen, reduzierten Befehlssätzen in Kombination mit schneller Ausführung der einzelnen Instruktionen aus.

Für die Befehlssätze werden im Allgemeinen folgende Gruppen von verschiedenen Instruktionen genutzt:

  • Die Gruppe der Transferbefehle beinhaltet alle Datenoperationen, die eine unveränderte Kopie in andere Speicherzellen oder Register bewirken. In diese Gruppe gehören Load-/Store-Kommandos zur Datenkopie zwischen externem Speicher und internem Register, Austauschbefehle zwischen den internen Registern sowie Stack-Befehle. Beispiele hierfür sind LD (Load) und ST (Store), Mov (Move), Push und Pop.

  • Die Gruppe der Flag-Befehle beinhaltet alle Instruktionen zur direkten Manipulation der Flags im Statusregister. Dies ist beim Carry- und beim Interrupt-Flag notwendig, um zum Beispiel Vorbelegungen für Addition/Subtraktion vorzunehmen oder Programmteile vor Unterbrechungen zu schützen. Beispiele sind SEC (Set Carry), CLC (Clear Carry), SEI (Set Interrupt Flag) und CLI (Clear Interrupt Flag).

  • Die Gruppe der arithmetisch/logischen Instruktionen umfasst alle Datenmanipulationsbefehle. Hierzu zählen Addition, Subtraktion, Multiplikation und Division für die arithmetische Gruppe sowie logische Verknüpfungen wie AND, OR und XOR für die logische Gruppe. Weiterhin zählen Rotations- und Shift-Befehle, die die Bitwerte eines Registers um eine oder mehrere Stufen nach links/rechts verschieben oder rotieren lassen, zu dieser Gruppe.

  • Die Gruppe der Kontrollflussbefehle beinhaltet die unbedingten Sprungbefehle, die bedingten Branch-Befehle (Verzweigungen), den Unterprogrammaufruf sowie die Rücksprunginstruktionen für Unterprogramme und Interrupt-Service-Routinen. Auch Befehle zum Aufruf von Software-Interrupts gehören in diese Kategorie.

  • Diese Befehle verändern generell den Kontrollfluss eines Programms, indem sie den Program Counter neu setzen und somit von der sequenziellen Folge der Programmbearbeitung abweichen.

  • Weitere Instruktionen wie NOP (No Operation) werden meist zur Gruppe der sonstigen Befehle zusammengefasst. Hierunter fallen auch Kommandos, die den Prozessor komplett anhalten (WAIT, STOP).