2.2.2 Befehlssatz

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 20: Zeile 20:


Dabei wird <Befehl> mit drei Bit codiert, <Num> mit einem Bit und <Operand> mit sechs Bit. Die im Video gezeigte Reserve dient lediglich dazu, die gesamte Befehlslänge auf ein Vielfaches eines Bytes (= acht Bit) zu ergänzen. Die Befehlslänge aus dem Beispiel im Video beträgt somit für alle Befehle 16 Bit.
Dabei wird <Befehl> mit drei Bit codiert, <Num> mit einem Bit und <Operand> mit sechs Bit. Die im Video gezeigte Reserve dient lediglich dazu, die gesamte Befehlslänge auf ein Vielfaches eines Bytes (= acht Bit) zu ergänzen. Die Befehlslänge aus dem Beispiel im Video beträgt somit für alle Befehle 16 Bit.


Auch bei den Befehlsformaten werden verschiedene Klassifizierungen unterschieden, <cite>Brinkschulte+et.al.+2010</cite> gibt diese Klassen ausführlich an. An dieser Stelle werden lediglich drei unterschiedliche Varianten betrachtet:
Auch bei den Befehlsformaten werden verschiedene Klassifizierungen unterschieden, <cite>Brinkschulte+et.al.+2010</cite> gibt diese Klassen ausführlich an. An dieser Stelle werden lediglich drei unterschiedliche Varianten betrachtet:
Zeile 29: Zeile 27:
* Dreiadressformat
* Dreiadressformat


Das '''Einadressformat''' entspricht dem Format aus dem Video [http://youtu.be/cX5XLc9e_g4 Vom Quellcode zum Prozessor]. Hier wird für die einzelnen Befehle nur eine Adresse eines Operaden (deshalb ''Einadressformat'') angegeben. Wird ein zweiter Operand benötigt, so wird vorausgesetzt, dass dieser sich im Register Akkumulator befindet. Das bei der Abarbeitung des Befehls berechnete Ergebnis wird per Definition wieder im Akkumulator gespeichert.
Das '''Einadressformat''' entspricht dem Format aus dem Video [http://youtu.be/cX5XLc9e_g4 Vom Quellcode zum Prozessor]. Hier wird für die einzelnen Befehle nur der ''Opcode'' und die ''Adresse eines Operaden'' (deshalb ''Einadressformat'') angegeben. Wird ein zweiter Operand benötigt, so wird vorausgesetzt, dass dieser sich im Register Akkumulator befindet. Das bei der Abarbeitung des Befehls berechnete Ergebnis wird per Definition wieder im Akkumulator gespeichert.
 
<loop_area type="definition">'''Definition: Opcode'''<br />Unter dem '''Opcode''' eines Befehls versteht man eine binäre Codierung, aus der sowohl der Befehl, als auch zusätzlich benötigte Steuerinformationen hervorgehen.
</loop_area>
 
Der Opcode für das Beispiel zum Einadressformat besteht also aus <Befehl> und <Num>, insgesamt also aus vier Bit.


<loop_area type="task">'''Aufgabe 1'''<br />
<loop_area type="task">'''Aufgabe 1'''<br />

Version vom 3. September 2013, 13:20 Uhr

Definition

Definition: Befehlssatz

Unter dem Befehlssatz einer CPU versteht man die Menge der von einer CPU unterstützten Befehle.

Ein Beispiel für einen ganz einfachen Befehlssatz ist in dem bereits bekannten Video Vom Quellcode zum Prozessor zu sehen:

Einfacher befehlssatz.JPG

Die Auflistung der einzelnen Befehle erfolgt in dem vorangegangenen Bild jeweils in Maschinencode (3 Bit) als auch als Assemblerbefehl.

Innerhalb des Befehlssatzes lassen sich einzelne Befehlsarten unterscheiden. Zu den Befehlsarten zählen unter anderem:

  • Datenbewegungsbefehle (z.B. LOAD, STORE)
  • Arithmetisch-logische Befehle (z.B. ADD, SUB)
  • Programmsteuerbefehle (z.B. JUMP, EQUAL)
  • Systemsteuerbefehle (z.B. HALT)

Eine umfassendere Auflistung und Erläuterung der Befehlsarten ist bei zu finden.

Neben der Festlegung der Namen der einzelnen Befehle (bzw. deren binärer Codierung), ist die Festlegung des sogenannten Befehlsformats eine wichtige Entscheidung bei der Entwicklung einer CPU.

Das Befehlsformat definiert für jeden einzelnen Befehl, wie dieser codiert ist. Im Video Vom Quellcode zum Prozessor entspricht dies dem aus drei Teilen bestehende Format:

<Befehl><Num><Operand>

Dabei wird <Befehl> mit drei Bit codiert, <Num> mit einem Bit und <Operand> mit sechs Bit. Die im Video gezeigte Reserve dient lediglich dazu, die gesamte Befehlslänge auf ein Vielfaches eines Bytes (= acht Bit) zu ergänzen. Die Befehlslänge aus dem Beispiel im Video beträgt somit für alle Befehle 16 Bit.

Auch bei den Befehlsformaten werden verschiedene Klassifizierungen unterschieden, gibt diese Klassen ausführlich an. An dieser Stelle werden lediglich drei unterschiedliche Varianten betrachtet:

  • Einadressformat
  • Zweiadressformat
  • Dreiadressformat

Das Einadressformat entspricht dem Format aus dem Video Vom Quellcode zum Prozessor. Hier wird für die einzelnen Befehle nur der Opcode und die Adresse eines Operaden (deshalb Einadressformat) angegeben. Wird ein zweiter Operand benötigt, so wird vorausgesetzt, dass dieser sich im Register Akkumulator befindet. Das bei der Abarbeitung des Befehls berechnete Ergebnis wird per Definition wieder im Akkumulator gespeichert.

Definition

Definition: Opcode
Unter dem Opcode eines Befehls versteht man eine binäre Codierung, aus der sowohl der Befehl, als auch zusätzlich benötigte Steuerinformationen hervorgehen.

Der Opcode für das Beispiel zum Einadressformat besteht also aus <Befehl> und <Num>, insgesamt also aus vier Bit.

Aufgabe

Aufgabe 1

Betrachte die Befehle NOOP, LOAD, STORE, ADD, SUB, EQUAL, JUMP, HALT aus dem Video Vom Quellcode zum Prozessor. Welche dieser Befehle benötigen einen Operaden, welche benötigen keinen Operanden?

Das Zweiadressformat


Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png