1. Übersicht über die Minimaschine

Die Minimaschine wurde speziell für den Einsatz als CPU-Simulator im Rahmen des bayerischen Informatiklehrplans des G8, Jahrgangsstufe 12 entwickelt. In Version 3.0 wurde sie gemäß den zusätzlichen Anforderngen ergänzt, die der LehrplanPlus für die 12. bzw. 13 Jahrgangsstufe stellt.

Kern ist ein typischer Prozessor einer Registermaschine, der im Einzelschrittmodus (jeder Befehl wird separat ausgeführt), Mikroschrittmodus (die typischen Teile des Befehlszyklus werden separat ausgeführt) und Abarbeitungsmodus (die Befehle werden so lange ausgeführt, bis der Befehl HOLD oder ein illegaler Befehl erreicht wurde) arbeiten kann.

Die Maschine adressiert einen Speicher von 64K 16-Bit-Worten, ist also eine typische 16-Bit-Maschine. Jeder Befehl besteht aus zwei Worten. Im ersten Wort sind Opcode und Adressierungsart gespeichert, im zweiten Wort die Adresse, die bei Befehlen ohne Adressteil mit dem Wert 0 belegt wird. Dadurch kann jeder Befehl vollständig geladen werden, ohne ihn dekodieren zu müssen. Sprungbefehle nutzen zur Steuerung das Flag-Register, das von allen den Akkumulator verändernden Operationen sowie von den Befehlen CMP und CMPI gesetzt wird. Da die Sprungbefehle absolute Adressen über den ganzen Adressbereich haben, muss nicht zwischen kurzen und weiten Sprüngen unterschieden werden.

Um die Arbeit mit komplexeren Programmen zu erleichtern, steht ein symbolischer Assembler zur Verfügung. Die Befehle werden grundsätzlich als Symbol eingegeben, die Adressteile können entweder absolut oder symbolisch (als Marken) eingegeben werden.

Um für die Kompetentzerwartung „setzen einfache Algorithmen in Assemblersprache um und testen diese Programme mithilfe einer Registermaschinensimulation” (INF12.LB4 EN; INF13.LB2 GN) auch zeigen zu können, dass die vollautomatische Umsetzung von Hochsprachen selbst für diesen einfachen Prozessor möglich ist, wurde zusätzlich eine einfache Hochsprache entworfen, die auch einen Compiler für die Minimaschine hat. Diese Sprache enthält alle algorithmischen Grundkonzepte.

Mit zuschaltbaren Erweiterungen, bei denen der Prozessor um ein Stackpointer-Register, zusätzliche Befehle und komplexere Adressierungsarten ergänzt wird, kann diese Maschine auch für Wahlkurse oder W-Seminare eingesetzt werden, die sich mit der automatischen Übersetzung von Hochsprachen befassen.


Versionsübersicht

V3.1 Kleine Fehlerkorrekturen und Erweiterungen
  • Beim Ablagebefehl WORD sind jetzt auch Marken erlaubt.
  • Bei decodierten Befehlen wird die Adressierungsart angezeigt.
V3.0.1 Kleine Fehlerkorrekturen
  • Die Art der Speicheranzeige wird beim Umschalten zwischen einfacher und detaillierter Darstellung übernommen.
  • Die Umstellung der Art der Speicheranzeige wird in der CPU-Darstellung sofort übernommen.
V3.0 Ergänzungen für LehrplanPlus:
  • Anzeige und Auswertung des Überlaufflags für vorzeichenlose Arithmetik,
  • Anzeige des Steuerbusses.
  • Darstellung der Speicher- und CPU-Datenanzeige auch als vorzeichenlose Dezimalzahlen möglich.
  • Arithmetikbefehle für vorzeichenlose Dezimalzahlen ergänzt.
  • Sprungbefehle für vorzeichenlose Dezimalzahlen ergänzt.
  • Anpassung an neuere Java-Runtime-Versionen (Java 13+).
V2.2 Anpassung an neuere Java-Runtime (Java 11+).
V2.1 Interne Verbesserungen.
V2.0 Zuschaltbare Erweiterungen für:
  • Stackpointerregister,
  • Befehle zum Unterprogrammaufruf,
  • Befehle zum Zugriff auf den Stackpointer,
  • Erweiterte Adressierungsarten zum Zugriff auf den Stack.
Fehler bei der indirekten Adressierung wurden korrigiert.
Im Detailmodus wird der aktuelle Mikroschritt angezeigt.
V1.10 Neue Wrapper für Windows und macOS.
V1.9 Speicherinhalt kann auch als Befehle dargestellt werden.
Hexadezimale Speicherdarstellung wird auch in der CPU-Anzeige gespiegelt.
V1.8 Zeit für Programmabbruch einstellbar.
Fehler in Zeilennummernanzeige korrigiert.
V1.7 Zeilennummernanzeige im Editor.
Editorfont wählbar.
V1.6 Indirekte Adressierung mit "(<Adresse>)".
Zeitbegrenzung des Programmablaufs zur Erkennung von Endloswiederholungen.
V1.5 Konstanten können hexadezimal notiert werden.
Updatefehler bei Speicheranzeige behoben.
V1.4 Alle Fenster habe für die Präsentation am Beamer eine großformatige Dartellung.
V1.3 Die Maschinenbefehle können auch in Kleinbuchstaben geschrieben werden.
V1.2 Der Speicher kann hexadezimal dargestellt werden.
Bitmanipulationsbefehle wurden ergänzt.
V1.1 Der Speicher kann im Speicherfenster editiert werden.
Diverse kleinere Korrekturen.
V1.0.3 Die Version wird im Fenster „über die Minimaschine” angezeigt.
V1.0.2 Diverse Fehler bei „CPU zurücksetzen” werden behoben.
V1.0.1 Öffnen und Speichern von Dateien wird verbessert.