ASM Projekt 13 - Plichtenheft
Gliederung
- Zielvorgaben
- Einschränkungen
- Testverfahren
- Arbeitsschritte
Zielvorgaben
Es ist eine Assemblerroutine zu erstellen, die den Cosinus einer 64-Bit-Gleitpunktzahl errechnet
und das Ergebnis im selben Format zurückliefert. Die Genauigkeit dieser Routine soll der des
entsprechenden Befehls "FCOS" des mathematischen Coprozessors (FPU=Floating Point Unit)
entsprechen. Außerdem soll dieser Programmteil aus Delphi 4 von Borland aufrufbar sein.
Einschränkungen
Zur Lösung dieser Aufgabe sind neben den Befehlen für die vier Grundrechenarten
+,-,*,/ sowie der Negation keine weiteren FPU-Befehle zu verwenden.
Testverfahren
Das erstellte Programm ist in Bezug auf Genauigkeit, sowie Geschwindigkeit mit dem Befehl "FCOS"
der FPU zu vergleichen. Zusätzlich soll die Laufzeit der Routine mit der Laufzeit der
Software-Emulation des Compilers von "FCOS" verglichen werden.
Außerdem soll ein Rahmenprogramm in Delphi erstellt werden, das die Leistungsmessung der
Assemblerroutine vornimmt.
Arbeitsschritte
- Erstellung eines Pflichtenheftes, sowie der Spezifikation der Aufgabe.
- Das Projektteam muß sich in die Problematik der Cosinusfunktion einarbeiten, hierzu
gehört die Untersuchung der mathematischen Lösungsansätze:
- Wie läßt sich die Cosinusfunktion mit Hilfe der zur Verfügung stehenden Mittel
darstellen?
- Die numerischen Probleme, die bei der Rundung im Rechner auftreten können: Wie ist das
Fehlerverhalten bei evtl. nicht zu vermeidenden Rundungen bei der Berechnung?
- Die Implementierung des Programms umfaßt:
- die Entwicklung der eigentlichen Assemblerroutine,
- die Programmierung evtl. erforderlicher zusätzlicher Hilfsprogramme und
- die Erstellung eines Testprogramms.
- Das Programm muß ausreichend getestet und von Fehlern befreit werden, so daß es
korrekt arbeitet und die gewünschte Aufgabe möglichst effizient erfüllt.
- Es ist eine Dokumentation zu erstellen, die den Verlauf, sowie das Ergebnis des Projektes
detailliert darlegt.
- Zum gesamten Projekt ist ein Vortrag vorzubereiten, der von einem Mitglied der Gruppe gehalten
wird.