01 Wie arbeitet ein Prozessor?

Einstieg in das Thema

Was brauchst du als Basiswissen?

Du hast bereits kleine Programme geschrieben. Du kennst Variablen, Rechnungen, Verzweigungen und Schleifen. Du hast das Kapitel "Hardware" bearbeitet, ebenso bist du vertraut mit dem Binär- und dem Hexadezimalsystem.

Worum geht es?

Eine Programmiersprache versteckt viele Einzelheiten des Computers. Ein Prozessor führt dagegen sehr einfache Maschinenbefehle aus. Wir untersuchen an einem Lernmodell des Z80, wie daraus ein Programm wird.

Was ist das Ziel?

Du kannst die Aufgaben von Prozessor, Speicher, Registern und Programmzähler erklären. Du kannst ein kurzes Maschinenprogramm im Einzelschritt verfolgen.

Erarbeitung

Theorie

Checkliste (für die KI oder den Lehrer)

  • Maschinensprache als Folge von Zahlen beziehungsweise Bytes
  • Z80 als historischer 8-Bit-Prozessor und als überschaubares Lernmodell
  • Prozessor und Arbeitsspeicher als getrennte Bereiche
  • Register als kleine, schnelle Speicherplätze im Prozessor
  • Register A als Akkumulator für viele Rechenoperationen
  • Program Counter PC zeigt auf den nächsten Befehl
  • Opcode legt die Operation fest; weitere Bytes können Werte enthalten
  • Befehlszyklus: holen, entschlüsseln, ausführen
  • Hexadezimalzahlen als kurze Schreibweise für Binärzahlen
  • HALT beendet ein Programm im Lernapplet

Video

Aufgaben

Aufgabe 1
Starte das vorgegebene Programm noch nicht. Ordne im Applet die Bereiche Programm, Register, Speicher und Bildschirm den Bestandteilen eines Computers zu. Beschreibe zu jedem Bereich seine Aufgabe.
Aufgabe 2
Notiere vor jedem Klick auf „Step“ deine Vermutung für PC und A. Führe danach genau einen Schritt aus und überprüfe die Vermutung. Erkläre, weshalb der PC nicht nach jedem Befehl um denselben Wert steigt.
LD A,5 ADD A,7 HALT
Aufgabe 3
Gib das Programm ein und verfolge es mit „Step“. Halte für jeden Schritt Adresse, Befehl, A vor dem Schritt, A nach dem Schritt und PC nach dem Schritt fest.
Aufgabe 4
Vergleiche die Hex- und Binärdarstellung von `LD A,5` und `LD A,6`. Markiere, welches Byte den Befehl bezeichnet und welches Byte den Wert enthält.
Aufgabe 5
Übersetze die Binärbytes `00111110 00001010` mithilfe der Anzeigen im Applet in einen Assemblerbefehl. Sage das Ergebnis zuerst voraus und kontrolliere es danach durch Eingabe in die Binärspalte.
Aufgabe 6
Ersetze im Beispiel `ADD A,7` nacheinander durch `INC A` und `DEC A`. Vergleiche Befehlslänge und Wirkung. Begründe, weshalb ein Prozessor viele kleine Befehle statt eines einzigen sehr mächtigen Befehls nutzt.
Aufgabe 7
Erkläre den Unterschied zwischen dem Assemblertext `LD A,5` und den Bytes `3E 05`. Warum kann der Prozessor nicht unmittelbar den Text `LD A,5` ausführen?

Zusammenfassung

Was muss man wissen und können?

Ein Prozessor holt Maschinenbefehle aus dem Speicher und führt sie nacheinander aus. Register speichern Werte direkt im Prozessor. Der PC enthält die Adresse des nächsten Befehls. Ein Maschinenbefehl besteht aus einem Opcode und eventuell weiteren Bytes für Werte oder Adressen.

Was können anschließende Themen sein?

Als Nächstes untersuchen wir Register und Arbeitsspeicher genauer. Dabei zeigt sich, wie die aus Programmiersprachen bekannten Variablen auf einfache Speicheroperationen zurückgeführt werden können.