Programmbefehle als Bits
Nicht nur Nutzdaten, auch ausführbare Programme werden letztlich durch Bitmuster repräsentiert.
Auch Programme sind Daten
Ein gespeichertes Programm ist selbst eine Folge von Bits. Der Prozessor interpretiert bestimmte Bitmuster als Maschinenbefehle. Damit das funktioniert, muss die Prozessorarchitektur eindeutig festlegen, welche Bitfolgen welche Operationen bedeuten.
Dieser Abschnitt ist leichter verständlich, wenn Register, Maschinenbefehle und der grundlegende Ablauf „Befehl holen – decodieren – ausführen“ bereits bekannt sind.
Operation und Operand
Viele Maschinenbefehle lassen sich vereinfacht in zwei Bestandteile zerlegen:
- Operation (Opcode): Was soll geschehen?
- Operand: Mit welchen Daten, Registern oder Adressen soll die Operation arbeiten?
Angenommen, ein fiktiver Prozessor verwendet 8-Bit-Befehle: Die ersten 3 Bit könnten den Opcode bestimmen, die verbleibenden 5 Bit den Operanden.
010 10110 ^^^ ^^^^^ | └── Operand └──────── Opcode
Mit 3 Opcode-Bits wären 8 unterschiedliche Operationen möglich; 5 Operand-Bits erlauben 32 verschiedene Operandmuster. Die tatsächliche Bedeutung ist vollständig durch die Architektur festgelegt.
Ein kleines fiktives Beispiel
| Opcode | Bedeutung |
|---|---|
000 | LOAD |
001 | STORE |
010 | ADD |
011 | SUB |
100 | JUMP |
Das Bitmuster 01010110 könnte in dieser frei erfundenen Architektur bedeuten:
ADD 22, weil 010 als ADD definiert ist und 10110₂ = 22₁₀.
Entwirf drei weitere Opcodes. Welche Einschränkung entsteht, wenn du mehr als acht unterschiedliche Operationen benötigst? Welche Konsequenz hätte es, dem Opcode stattdessen 4 Bit zu geben?
Dasselbe Muster – andere Bedeutung
Eine Folge wie 01010110 besitzt ohne Kontext keine festgelegte Bedeutung. Sie könnte die Zahl 86,
ein Teil eines Zeichencodes, ein Farbkanal, ein Maschinenbefehl oder etwas völlig anderes sein.
Damit schließt sich der Kreis zur Informationsdarstellung: Bitmuster werden erst durch Regeln und Kontext zu Information.
Inhaltlich neu formulierte deutschsprachige Bearbeitung nach dem Computer Science Field Guide – Data Representation, einem Projekt der Computer Science Education Research Group der University of Canterbury (Neuseeland). Die Ausgangsinhalte stehen unter CC BY-SA 4.0. Diese Bearbeitung steht ebenfalls unter CC BY-SA 4.0. Änderungen: Übersetzung, Neuformulierung, didaktische Kürzung/Erweiterung, eigenes Layout und eigene Interaktionen.