-
Notifications
You must be signed in to change notification settings - Fork 0
MWeigert/Mini-Power-PC
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Informatik - Aufgabenserie 6 ---------------------------------------A U F G A B E------------------------------------------------ ---------------------------------M I N I P O W E R P C------------------------------------------ 1.TEIL---------------------------------------------------------------------------------------------- Schreiben Sie ein Programm in einer beliebigen Programmiersprache / Umgebung, das den in der Vorlesung spezifierten "Mini-Power-PC" emuliert - d.h. alle Befehle des Befehlsatzes (s.h. Anlage Befehlssatz) ausführt. Als Eingabe soll gelesen werden: - Ein beliebiges mit dem Befehlssatz geschriebenes Programm, das ab Speicher 100 in den Speicher eingelesen wird (Der Op-Code des Programms kann als Binär-, Dezimal- oder Hex- Zahlen eingelesen werden). - Die Parameter des Programms (Eingabewerte) ab Speicher 500 (Die Parameter des Programms können als Binär-, Dezimal- oder Hex-Zahlen eingelesen werden). Als Ausgabe wird folgendes erwartet: - Die aktuellen Zustände der Register * Befehlszähler, Befehlsregister * Akkumulator, Carry-Bit * Reg-1, Reg-2, Reg-3 * Optional: alle Werte auch als Binär-Werte (16 Bit) - Der aktuelle decodierte Befehl aus dem Befehlsregister (als Mnemonics) - Der aktuelle Zustand des Speichers * 5 Befehle vor bis 10 Befehle nach dem aktuellen Befehl * Der Inhalt der Speicherzellen 500 bis 529 (wortweise) * Optional: alle Werte auch als Binär-Werte - Die Anzahl der durchgeführten Befehle (zum Programmstart 0) Implementieren Sie einen "schnellen" und einen "slow" Modus, sowie optional einen "Step-Modus". Schneller Modus: Während des Programmablaufs erfolgt keine Ausgabe (keine Aktualisierung der Ausgabedaten); diese werden erst am Programmende aktualisiert. Slow Modus: Während des Programmablaufs wird nach Bearbeiten eines jeden Befehls die Ausgabe akutalisiert. Step-Modus Wie Slow Modus, jedoch wird das Programm nach Bearbeitung eines jeden Befehls unterbrochen und wird erst nach einer Bestätigung durch den User (z.B. drücken einer Taste) wieder fortgesetzt. 2.TEIL----------------------------------------------------------------------------------------------- Schreiben Sie ein Programm in der Maschinensprache des in der Vorlesung spezifizierten (vereinfachten) "Mini-Power-PC" (Befehlssatz siehe Anlage), das zwei beliebige 16-Bit Zahlen miteinander multipliziert. Die beiden 16-Bit Zahlen (im 2er-Komplement) sollen in die Speicher 500/5001 und 502/503 eingelesen werden. Die Ausgabe wird als 32-Bit Zahl (im 2er-Komplement) in die Speicher 504/505/506/507 ge- schrieben. 3.TEIL----------------------------------------------------------------------------------------------- Verifizieren Sie Ihren Emulator und Ihr Programm, indem Sie folgende Multiplikationen durchführen: * 15 x 27 * 0 x 23456 * -1234 x 4321 * -222 x -333 ===================================================================================================== FORTSCHRITT-INFORMATIONEN 28.10. MW - GitHub eingerichtet und erste Planungen begonnen. 29.10. MW - Erste Klassen und erstes Testfile programmiert. (Converter; Memory) 30.10. MW - Weitere Konvertierungen in die Klasse Converter.java eingefügt. 31.10. MW - Converter wird erst einmal nicht weiterentwickelt -> neue Klasse Binary, welche alle funktionalitäten beninhalten wird um mit Binärzahlen im Projekt zu arbeiten, entwickelt. 03.11. MW - AssemblerCompiler implementiert. 04.11. MW - Funktionalitäten für folgende Klassen (weiter) entwickelt: Register, CPU und Memory - Memory kann nun flushen; Werte einzelner Zellen Binär & Dezimal ausgeben und den Wert (als Binärzahl) einzelner Zellen setzen (Grösse: 1 KiB). - Register können flushen; Werte setzen/zurückgeben (Binär). Register setzen ihren Wert im Constructor zufällig. - CPU hat ein Befehlsregister, einen Befehlszähler, ein Akkumulator, drei Register, ein Carry-Bit, ein RAM (1 KiB) und einen internen Counter. - CPU kann nun eine Statusmeldung auf der Console ausgeben. - BUGFIX: Converter rechnet nun korrekt Binärzahlen in Dezimalzahlen um. 05.11. MW - Binary: Kann nun Binärzahlen und 2erKomplemt mit und ohne Formatierung zurückgeben. - NEUE KLASSE: UserInput - UserInput: liest zwei Integer ein und schreibt Sie an die Speicheradressen 500 bis 503 06.11. MW - CPU kann nun den UserInput aufrufen - CPU kann nun ein "Reset" durchführen - CPU liefert nun den Wert des Befehlszählers (sowohl Binär als auch Dezimal) - CPU hat nun erweiterte Statusmeldungen (Aufgaben Konform) - Register können nun auch ihre Werte "formatiert" (Byte per Byte) zurückgeben. 12.11. MW - Converter kann Binärzahlen nun "formatiert" (Byte weise) ausgeben. - Die CPU gibt nun den Datenspeicher Wort weise aus (16 Bit). - BUGFIX: Das 2er Komplement wird nun korrekt berechnet. 13.11. MW - CPU zeigt nun die Dezimalwerte des Datenspeichers (2er Komplement) korrekt an. - Converter kann nun auch das 2er Komplement wieder ins Dezimalsystem umrechnen. - Der Befehlszähler ist nun auch ein Register. - GUI_OpenFileDialog implementiert. Diese lässt ein Assembler Programm auswählen. - Loader implementiert. 14.11. MW - BUGFIX: Compiler compiliert nun den Befehl NOT korrekt. - CPU gibt nun den Programspeicher Wort weise aus (16 Bit). - CPU hat Methode welche mittels Loader aus einem auswählbaren Textfile den Program Code als Maschinencode in den Programspeicher lädt. - BUGFIX: Compiler weitere Bugs bei der Umwandlung in Maschinencode entfernt. - Converter kann nun Maschinencode in Mnemonic übersetzen.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published