2. Bedienung der Minimaschine

2.1 Ausführbare Dateien

Von der Minimaschine existieren drei ausführbare Varianten:

Minimaschine.jarAusführbare jar-Datei, die unter jedem Betriebssystem lauffähig ist.
Minimaschine.exeEine speziell für MS-Windows angepasste Variante der Minimaschine.
Minimaschine.appEine speziell für macOS angepasste Variante der Minimaschine ab macOS 10.13 mit eigener Java-Laufzeitumgebung.

Alle Varianten (außer Minimaschine.app) setzen eine Java-Laufzeitumgebung der Version 13 oder höher voraus.

2.2 Start

Gestartet wird die Maschine durch Doppelklick auf das entsprechende Programmsymbol. Unter macOS und Windows lässt sich die Maschine auch durch Doppelklick auf eine zugeordnete Assembler- oder Minisprachendatei starten; die Datei wird dabei automatisch geöffnet. Nach dem Start erscheinen zwei Fenster, die die CPU in der detaillierten Ansicht (siehe 2.4) und den Speicher (siehe 2.6) repräsentieren. Gegebenenfalls wird auch bereits ein Dateifenster geöffnet.

2.3 Die Menüzeile

Die Menüs variieren je nach ausgewähltem Fenster. Fester Bestandteil aller Menüzeilen sind:

Der Menüpunkt Beenden ist abhängig vom Betriebssystem im Menü Minimaschine (macOS) oder im Menü Ablage (andere Betriebssysteme).

Die fensterspezifischen Menüeinträge werden dort besprochen.

2.4 Das detaillierte CPU-Fenster

VoreingestelltErweitert

Dieses Fenster stellt die Grundbestandteile der CPU sowie einen relevanten Ausschnitt aus dem Speicher dar. Weiter enthält es die Bedienelemente zum Ausführen eines im Speicher befindlichen Programms.

Die Teile im Einzelnen von links nach rechts:

Akkumulator Der Akkumulator der Maschine
ALU Das Y-förmig dargestellte Rechenwerk zeigt links oben den ersten Operanden (Akku), in der Mitte oben die Operation, rechts oben den zweiten Operanden (Speicherwert oder Wert aus dem Befehl) und unten das Ergebnis der Operation
Status Das Statusregister mit den vier Flags Z (letzte Operation hatte das Ergebnis 0), N (letzte Operation hatte ein negatives Ergebnis), V (letzte Operation hatte einen Überlauf bei vorzeichenbehafteter Arithmetik) und C (letzte Operation hatte einen Überlauf bei vorzeichenloser Arithmetik)
Befehlsregister Das Befehlsregister zeigt Operationscode und Adressteil
Programmzähler Der Programmzähler der Maschine
Speicher oben Der Speicherinhalt um den Wert des Programmzählers; so sind der aktuelle und der folgende Befehl uninterpretiert sichtbar
Speicher unten Der Speicherinhalt um den Wert des letzten Adressteils

In der erweiterten Version kommen von links nach rechts dazu:

Stackpointer Das Stackpointerregister(Kellerspeicherregister) der Maschine
Speicher oben Der Speicherinhalt um den Wert des Programmzählers; so sind der aktuelle und der folgende Befehl uninterpretiert sichtbar
Speicher mitte Der Speicherinhalt um den Wert des letzten Adressteils
Speicher unten Der Speicherinhalt über dem Wert des Stackpointers

Über den CPU-Bestandteilen ist der Datenbus dargestellt; im Mikroschrittmodus werden hier auch die übertragenen Daten dargestellt. In der Mitte steht der aktuelle Mikroschrittstatus. Unter den CPU-Bestandteilen ist der Adressbus dargestellt; im Mikroschrittmodus werden hier auch die von der CPU angelegten Adressen dargestellt. Unter dem Adressbus ist der Steuerbus symbolisiert. Hier wird im Mikroschrittmodus die Datenflussrichtung (Schreiben / Lesen) angezeigt.

Ausgeführt werden Programme mithilfe der drei Knöpfe am unteren Rand des Fensters.
Mit „Ausführen” wird die Programmausführung gestartet; die Ausführung endet bei Erreichen des Befehls HOLD oder eines illegalen Befehlscodes.
Mit „Einzelschritt” wird genau ein Befehl ausgeführt; dieser Modus dient insbesondere zum Demonstrieren der Befehle oder zum Testen von Programmen.
Mit „Mikroschritt” lassen sich die einzelnen Phasen eines Befehls (Holen – Dekodieren – Ausführen) mit ihrer Wirkung auf Register und Busse genau betrachten.

Spezielle Menüpunkte sind im Menü Werkzeuge zu finden. Hier kann man zwischen detaillierter und einfacher Ansicht umschalten. Mit dem Menüpunkt „Abbruchschranke setzen“ kann man die Zeit bis zum Abbruch von Programmen einstellen (Angabe in Sekunden). Der Menüpunkt „CPU zurücksetzen” setzt den Programmzähler und den Akkumulator auf den Wert 0 und löscht alle Flags ohne den Speicher zu verändern; danach kann ein Programm neu gestartet werden. Mit den Menüpunkt „Erweitert” können die Erweiterungen an- und ausgeschaltet werden.

2.5 Das einfache CPU-Fenster

VoreingestelltErweitert
Dieses Fenster ist eine vereinfachte Darstellung der CPU, die nur noch die Registerinhalte und den relevanten Teil des Speichers zeigt. Der Knopf „Mikroschritt” ist daher in dieser Darstellung nicht angeboten.
Alle Funktionen, Knöpfe und Menüs entsprechen ansonsten genau der Beschreibung des detaillierten CPU-Fensters (siehe
2.4).
Im erweiterten Modus wird zusätzlich das Stackpointerregister angezeigt; der Speicherauszug ist noch um den aktuellen Stackbereich ergänzt.

2.6 Das Speicher-Fenster

In diesem Fenster wird der Inhalt das Speichers dargestellt. Die Darstellung der Speicheradressen ist dezimal, auf Wunsch auch hexadezimal; jeweils zehn Speicherzellen sind in einer Zeile angezeigt. Die Zellinhalte werden als ganze, vorzeichenbehaftete Dezimalzahlen, als ganze, vorzeichenlose Dezimalzahlen, als vorzeichenlose Hexadezimalzahlen oder als Opcodes interpretiert dargestellt; der Inhalt der jeweils zuletzt geänderten Zelle wird rot angezeigt.

Bei Bedarf kann das Speicherfenster auch zum Verändern des Speichers verwendet werden. Die Aktivierung des Editiermodus erfolgt über das Werkzeugmenü. Editiert wird durch Klick auf die gewünschte Zelle und Eingabe des neuen Wertes. Beim Verlassen der Zelle wird der (neue) Wert automatisch in den Speicher übernommen.

Für das Speicherfenster ist vor allem das Werkzeuge-Menü wichtig.

2.7 Die Editor-Fenster

Die Editorfenster dienen zur Eingabe von Assembler- oder Minisprachenprogrammen. Sie implementieren einen einfachen Editor, der die Zwischenablage unterstützt (Kopieren, Ausschneiden und Einfügen) sowie das Widerrufen und Wiederholen von Änderungen.

Für die Editorfenster sind Menüpunkte aus allen Menüs verfügbar.

2.8 Die Assembleranzeige-Fenster

In den Assembleranzeige-Fenstern wird auf Wunsch der zu einem Minisprachenprogramm gehörende Assemblertext angezeigt. Diese Funktion ist speziell dafür vorgesehen, den Schülern zu zeigen, dass eine vollautomatische Übersetzung einer Hochsprachenquelle den strukturell gleichen Assemblertext ergibt, den Schüler „von Hand” erzeugt hätten.

Assembleranzeige-Fenster haben keine speziell zugeordneten Menüs; die Editierfunktionen des Bearbeiten-Menüs sind verfügbar.