Übungsbetrieb200201..

Werbung
F A C H H O C H S C H U L E
F Ü R
D I E
W I R T S C H A F T
F H D W ,
H A N N O V E R
ERGOMETER
A UFG ABEN
IM
A SSEMBLER -P ROJEKT 2002/01
Studiengang: Informatik Studienquartal: III. Theoriequartal
Dozent: Michael Löwe
TREIBER
Aufgabe 1 (3): Schreiben Sie eine Treiber-Routine für die Ausgabe an das Buttons-Device im HardwareSimulator. Der Treiber sorgt für die Beschriftung der einzelnen Knöpfe. Die Parameter sollen über Register übergeben werden. Die Routine soll drei Parameter haben: (1) Nummer des Devices, das angesprochen werden soll, (2) Nummer des zu beschriftenden Knopfes und (3) Startadresse des Beschriftungstextes. Der erste Parameter sorgt dafür, dass wir denselben Code für mehrere Devices vom selben Typ (also
zur Zeit mehrere Devices mit vier Knöpfen) verwenden können. Das Ende des Beschriftungstextes soll
durch ein Null-Byte (0x00) markiert werden.
Ausgabetermin: 21. 1. 2002; Abgabe: 28. 1. 2002
Aufgabe 2 (3): Schreiben Sie einen Treiber für den internen „Timer“. Es soll möglich sein, insgesamt 8
„Soft-Timer“ (Nummern 0 – 7) über dem einen „Hardware-Timer“ zu realisieren. Für jeden dieser „Timer“ soll ein eigenes Intervall als Vielfaches ( 5000) des „Hardware-Intervalls“ einstellbar sein. Ist das
Zeitintervall abgelaufen, soll eine Routine angesprungen werden, deren Anfangsadresse dynamisch hinterlegt werden kann. Außerdem soll jeder dieser Timer einzeln an und abgeschaltet werden können, und es
soll wählbar sein, ob der „Timer“ nur einmal abläuft und sich dann ausschaltet oder wieder auf das eingestellte Intervall gesetzt wird und erneut abläuft. Realisieren Sie die Parameterübergabe zunächst über Register. Dokumentieren Sie Ihre Entwurfsentscheidungen. Testen Sie ausführlich!
Ausgabetermin: 28. 1. 2002; Abgabe: 7. 2. 2002
BA S I S F U N K T I O N E N
Aufgabe 3 (3): Schreiben Sie Programme für die Multiplikation, Division und Restberechnung in den
vorzeichenbehafteten ganzen Zahlen! Übergeben Sie die Parameter in Registern. Behandeln Sie Ausnahmen, die durch Überlauf entstehen noch nicht; fangen Sie aber die Division und Restberechnung bei Divisor = 0 durch eine geeignete Fehlerbehandlung ab.
Ausgabetermin: 4. 2. 2002; Abgabe: 21. 2. 2002
Aufgabe 4 (3): Schreiben Sie den Kern einer Stapelspeichermaschine entsprechend der Vorgaben aus der
Vorlesung, siehe Anhang. Sie soll zumindest die Operationen SADD (Stapeladdition), SSUB (Stapelsubtraktion), SMUL (Stapelmultiplikation), SDIV (Stapeldivision), SMOD (Restberechnung auf dem Stapel),
INVOKE (Aufruf von Prozeduren), RETURN (Rückkehr aus Prozeduren ohne Wertrückgabe), VRETURN (Rückkehr aus Prozeduren mit Wertrückgabe), CLOAD (Konstante auf den Stapel legen), GLOAD (globale Variable auf den Stapel legen) LLOAD (lokale Variable auf den Stapel legen), GSTORE
(oberstes Element des Stapels entfernen und in globaler Variable speichern) LSTORE(oberstes Element
des Stapels entfernen und in lokaler Variable speichern) enthalten. Testen Sie anhand einer rekursiven
Version der Fakultätsfunktion!
Ausgabetermin: 11. 2. 2002; Abgabe: 28. 2. 2002
Aufgabe 5 (3): Schreiben Sie als Erweiterung der Stapelspeichermaschine die Operationen für den lesenden und schreibenden Zugriff auf ein „Array“ (ALOAD und ASTORE), und zwar entsprechend der Vor-
M ETHODEN DER S OFTWARETECHNIK
K LAUS UR
gaben aus der Vorlesung. Testen Sie Ihre Implementierung dadurch, dass Sie den Treiber aus Aufgabe 1
soweit wie möglich auf die abstrakteren Operationen aus Aufgabe 4 und dieser Aufgabe umstellen!
Ausgabetermin: 21. 2. 2002; Abgabe: 7. 3. 2002
A N W E N D U N G : E R S T E AU S B AU S T U F E
Aufgabe 6 (5): Fassen Sie alle Ihre Vorarbeiten zu einer ersten kleinen Ausbaustufe der Anwendung „Ergometer“ zusammen. Diese Anwendung soll nicht mehr als die Erfassung und Darstellung von Pulsfrequenzen (angegeben durch Pulsschläge pro Minute) sein. Binden Sie dazu einen Impulsgenerator, ein kleines „Display“ (Vorschlag 16 Spalten und 6 Zeilen) und ein Knopf-„Device“ ein. Auf dem Display soll in
der ersten Zeile stets der Momentanpuls dargestellt werden, etwa so:
PULSE:
70.
Zusätzlich soll und ein Durchschnittspuls dargestellt werden, etwa so:
AVERAGE PULSE:70.
Das Knopf-„Device“ soll durch einen „RESET“-Knopf die Messung des Durchschnitts erneut starten.
Es soll am „Display“ jederzeit erkennbar sein, ob der Puls-Sensor „angeschlossen“ ist oder nicht, das
heißt, ob überhaupt Impulse von ihm empfangen werden.
Ausgabetermin: 28. 2. 2002; Abgabe: 14. 3. 2002
Herunterladen