Emulation einer einfachen CPU

Dieses Programm wurde speziell für die Lehrplanpunkte "Inf12 Lernbereich 4: Funktionsweise eines Rechners (EN)" bzw. "Inf13 Lernbereich 2: Funktionsweise eines Rechners (GN)" entwickelt. Es emuliert eine einfache CPU, wobei wahlweise das Programm vollständig, jeder Befehl einzeln oder auch jeder Befehlsteil einzeln ausgeführt und visualisiert (CPU-Zustand und Speicherbelegung) werden kann.

CPU-DarstellungSpeicher-Darstellung

Die Eingabe der Programm erfolgt über einen Assembler, der selbst berechnetet Adressen aber auch symbolische Adressen erlaubt. Es können mehrere Quellfenster gleichzeitig geöffnet und editiert werden.

Um den Lehrplanschmuckpunkt "Umsetzung von Wiederholungen und bedingten Anweisungen auf Maschinenebene" zu ergänzen und die vollständige Abbildung der Hochsprachenebene auf die Maschinenebene zu zeigen, können Programme auch in einer Pascal-ähnlichen Hochsprache eingegeben werden; das erzeugte Maschinenprogramm kann angezeigt werden.

HochspracheÜbersetzt

Systemvoraussetzungen

Das Programm wurde in ursprünglich Java entwickelt und besteht aus einer ausführbaren JAR-Datei. Voraussetzung zum Starten des Programms ist daher unabhängig vom Betriebssystem eine Java-Laufzeitumgebung Java 13 oder besser. Für Windows und macOS stehen Wrapper zur Verfügung, welche die JAR-Datei zu einem vollständigen Programm ergänzen.

Für den Einsatz auf iPads wurde das Programm in Swift übertragen und steht als Playground zur Verfügung.

Funktionsbeschreibung

Eine kurze Beschreibung des Leistungsumfangs und der Bedienung des Programms steht auch im Buch "Informatik 6 " zur Verfügung. Ein eigenstädiges Manual ist hier online verfügbar, kann aber auch als ZIP-Archiv geladen werden.

Manual

Das Manual kann hier online gelesen werden.

Verfügbar ist aktuell Version 3.1

Version 3.1  : Anzeige der Addressierart bei dekodierten Befehlen; Ablagebefehl WORD erlaubt auch Marken; Assemblerbeispiel zur Umsetzung von Klassen/Objekten.
Version 3.0.1: Kleine Fehlerkorrekturen zur sofortigen Übernahme der Art der Speicherdarstellung im CPU-Fenster.
Version 3.0  : Vorzeichenlose Arithmetik, Anzeige des Steuerbusses und Anpassung an neuere Java-Runtime-Versionen (Java 13+).
Version 2.2  : Anpassung an neuere Java-Runtime (Java 11+)
Version 2.1  : Interne Verbesserungen
Version 2.0  : Zuschaltbare Erweiterungen für Stack und zugehörige Befehle zum Umsetzen von Unterprogrammen.
Version 1.10 : Neue Wrapper für Windows und macOS.
Version 1.9  : Speicherinhalt kann auch als Befehle dargestellt werden; Hexadezimale Speicherdarstellung wird auch in der CPU-Anzeige gespiegelt.
Version 1.8  : Zeit für Programmabbruch einstellbar; Zeilennummernanzeige korrigiert.
Version 1.7  : Zeilennummernanzeige im Editor.
Version 1.6  : Indiekte Adressierung möglich, Programmabbruch nach 5 Sekunden.
Version 1.5  : Konstanten können auch hexadezimal in der Form 0x<Hex><Hex><Hex><Hex> angegeben werden.
Version 1.4  : Alle Fenster habe für die Präsentation am Beamer eine großformatige Dartellung.
Version 1.3  : Die Maschinenbefehle können auch in Kleinbuchstaben geschrieben werden.
Version 1.2  : Der Speicher kann hexadezimal dargestellt werden. Befehle für Bitmanipulation ergänzt.
Version 1.1  : Der Speicher kann im Speicherfenster editiert werden. Diverse kleinere Korrekturen.
Version 1.0.3: Bessere Anzeige der aktuellen Version
Version 1.0.2: Fehlerkorrekturen für die Funktion "CPU zurücksetzen"
Version 1.0.1: diverse Fehlerkorrekturen und Anpassungen

Folgendes Material kann von dieser Seite geladen werden:

ACHTUNG Windows-Benutzer
Bei Windows wird eine neu installierte Java-Version nicht automatisch zur aktuellen Version; die aktuelle Version muss zuerst im Java-Kontrollpanel in der Systemsteuerung eingestellt werden. Eine Kontrolle ist mit folgender Kommandozeileneinane möglich: "java -version".

Rückmeldungen

Wenn Sie Fehler entdecken oder wenn Sie Anregungen bezüglich Funktionsweise, Bedienung, Darstellung usw. haben, teilen Sie mir Ihre Wünsche bitte mit.