Assembler-Versuch innerhalb des Hardware-Praktikums

- Aufgabenstellung -


Sachverhalt

Der SPIM-Simulator, Version 5.4+, bietet eine sehr begrenzte Anzahl von Systemdiensten. Ein Ausbau der angebotenen Funktionalität wäre wünschenswert.

Aufgabe

Entwerfen und implementieren Sie ein SPIM-Programm, welches zusätzliche Dienste durch Befehle break n zur Verfügung stellt. Dabei soll folgende Zuordnung gelten:

n Funktionalität Argumente Ergebnis
11 zeichenweise Eingabe, ohne Echo in $v0
12 zeichenweise Ausgabe $a0
13 hexadezimale Eingabe, 8 Zeichen oder Abbruch sowohl bei CR (Carriage Return) als auch bei LF (Line Feed) in $v0
14 hexadezimale Ausgabe $a0
15 Eingabe eines 64bit-Integerwertes in das Registerpaar $HI und $LO, begrenzt durch den maximalen Wert oder Abbruch sowohl bei CR (Carriage Return) als auch bei LF (Line Feed) in $HI die höherwertigen 32bit

in $LO die niederwertigen 32bit

16 Ausgabe eines 64bit-Integerwertes aus dem Registerpaar $HI und $LO $HI; $LO
17 Eingabe einer 4stelligen ungepackten BCD-Zahl in $v0
18 Ausgabe einer 4stelligen ungepackten BCD-Zahl $a0
19 ungepackte BCD-Addition src1: $a0

src2: $a1

in $v0
20 ungepackte BCD-Subtraktion src1: $a0

src2: $a1

in $v0

Realisieren Sie die aufgeführten Dienste als Erweiterung des Files "trap.handler" in der Form, daß die Ergänzungen in die vorhandenen Bereiche .text, .ktext und .kdata eingefügt werden. Nutzen Sie dafür ein selbstgeschriebenes Programm zur interruptgesteuerten zeichenweisen Ein- und Ausgabe als Basisroutine. Die zeichenweise Eingabe erfolgt ohne Echo; bei den komplexeren Diensten soll der eingegebene Wert angezeigt werden. Durch die Nutzung der Dienste dürfen keine Register, außer denen, die Ergebnisse bereitstellen, verändert werden.

Hinweis: Im Befehl break n ist n auf den Bits Nr. 15 bis 11 codiert.

Schreiben Sie außerdem ein Prüfprogramm, das alle diese Dienste nutzt und testet. Bei den Diensten 17 bis 20 soll der Inhalt des Registers, das die BCD-Zahl enthält, vom Testprogramm hexadezimal angezeigt werden.

Fertigen Sie zu Ihrer Lösung eine Dokumentation an, die folgendes enthalten soll:

Organisatorisches


Ihre Lösung ist im Rahmen eines Versuches des Hardwarepraktikums im Zeitraum 07.06. - 25.06.1999 zu verteidigen.

Bitte beachten Sie folgendes: