WikiDer > Anleitungssatz
EIN Befehlssatz ist der Sammlung von allem möglich Maschinencodes Das hier Prozessor verarbeiten kann. Das Anleitung werde wie binär Codes werden im Speicher abgelegt, die Programmierung selbst erfolgt in Assemblersprachen oder (normalerweise) höher Programmiersprachen.
Die meisten modernen Prozessoren haben einen sehr umfangreichen Befehlssatz, bei dem ein einzelner Befehl mehrere Funktionen ausführen kann. Zum Beispiel: "bekomme den Wert an dem durch Register X bezeichneten Speicherplatz, addiere ihn zum Wert im Arbeitsregister und zeige Register X auf den nächsten Speicherplatz".
Jede Prozessorfamilie hat im Allgemeinen ihren eigenen Befehlssatz, der nicht mit anderen austauschbar ist. Dies bedeutet, dass Programme, die für einen Prozessortyp erstellt wurden, nicht automatisch auf einem anderen Typ ausgeführt werden können. mit ihrkompilieren, Emulatoren oder Cross-Compiler kann dieses Problem überwunden werden.
Orthogonalität
Ein orthogonaler Befehlssatz bietet Unabhängigkeit zwischen Befehlen einerseits und Datentypen und Adressierungsmodi andererseits. Je orthogonaler der Befehlssatz ist, desto einfacher und "reiner" ist er mit einigen Vorteilen in Bezug auf Flexibilität und Programmierbarkeit. Eine zu weit getriebene Orthogonalität kann jedoch auch zu vielen ungenutzten oder selten genutzten Kombinationen und damit zu geringen Bitdichten und Ineffizienz in verschiedenen Bereichen führen. Modernere Konstruktionen versuchen daher, die Vorteile der Orthogonalität mit den Vorteilen der Verdichtung, die sich aus der Nicht-Orthogonalität ergeben, zu kombinieren, indem gut definierte Entscheidungen getroffen werden. Beispielsweise unterscheiden RISC-Befehlssätze zwischen Befehlen, die in erster Linie Daten zum und vom Hauptspeicher bewegen, Datenverarbeitungsbefehlen und Steuerbefehlen gegenüber den für jede Kategorie verfügbaren Adressierungsmodi.
Implementierung
x86-Befehlssatz
Der vielleicht bekannteste Befehlssatz ist der x86-Befehlssatz die für die verwendet wird Intel8086/8088Prozessor und (mit Erweiterungen) in späteren Versionen davon. Weniger bekannt, aber wahrscheinlich am weitesten verbreitet, ist der ARM-Befehlssatz. ARM-Prozessoren sind in einer Vielzahl von Geräten zu finden, von Mobiltelefone und PDAs bis um Drucker oder Festplatten.
RISC und CISC
Beim Entwerfen eines Prozessors und des zugehörigen Befehlssatzes werden im Allgemeinen zwei verschiedene Strategien verfolgt:
- Mit anderen Worten, die Anzahl unterschiedlicher Befehlstypen ist begrenzt und es wird ein Prozessor gebaut, der diese einfachen Befehle möglichst effizient und schnell ausführen kann. Durch die Kombination mehrerer dieser einfachen Anweisungen können komplexere Aufgaben ausgeführt werden. Diese Strategie heißt Computer mit reduziertem Befehlssatz (RISC).
- Mit anderen Worten, man entwirft separate Befehle für so viele denkbare Aufgaben wie möglich und baut einen Prozessor, der eine ziemlich komplexe Aufgabe mit einem einzigen Befehl ausführen kann. Diese Strategie heißt Komplexer Befehlssatz-Computer (CISC).
Anleitung
Ein Befehlssatz spezifiziert verschiedene Arten von Befehlen, die häufig die folgenden Argumente enthalten:
- Ein oder mehrere Register
- Eine Adresse im Speicher
- Konstanten (oft in hexadezimaler Form)
Betrieb
Die meisten Prozessoren bieten Anweisungen für die folgenden Funktionen:
Daten abrufen und schreiben
- Setzen Sie ein Register auf einen konstanten Wert.
- Holen Sie den Wert einer bestimmten Speicheradresse in ein Register. Schreiben Sie umgekehrt auch den Wert eines Registers in den Speicher.
- Lesen oder Schreiben von Daten auf Hardwarekomponenten.
Arithmetische und logische Operationen
- Addiere, subtrahiere, multipliziere und dividiere zwei Register. Das Ergebnis wird in einem Register abgelegt, mit oder ohne einige Anpassungen anderer Register (die zum Beispiel einen Überlauf anzeigen).
- Logische Operationen, wie die oder, und, und nicht-Operationen.
- Vergleichen Sie zwei Register im Wert.
Kontrollflussbearbeitet
- Sprungfunktionen. Es werden zwei Kategorien unterschieden: unbedingte Sprünge (die immer ausgeführt werden) und bedingte Sprünge (die nur unter einer bestimmten Bedingung ausgeführt werden).
- Ruft eine Funktion auf. Der Prozessor kehrt zum entsprechenden . zurück Rückkehr-Anweisung.
Andere
- Griff unterbrechen
- NOP (nichts tun)
Anweisungslänge
Die Befehlslänge hängt von der im Prozessor verwendeten Wortlänge ab. Beispiele sind 16-Bit-, 32-Bit- oder 64-Bit-Prozessoren. Ein Befehlssatz kann entweder eine feste Befehlslänge (z. B. jeder Befehl hat 32 Bit) oder eine variable Länge (z. B. die x86-Architektur, die bis zu 120 Bit reichen kann) sein. Anweisungen mit fester Länge sind normalerweise einfacher zu handhaben (beispielsweise wird eine Anweisung nicht über zwei verschiedene Cache-Blöcke laufen). Anweisungen mit variabler Länge bieten jedoch den Vorteil, dass endlos neue Anweisungen eingeführt werden können.
Präsentation
Maschinencode ist normalerweise in Assemblersprache anstelle der binären Form vorgeschlagen, um sie für Programmierer lesbar zu halten. Sehr oft kann der Compiler diese generieren.