|
Zurück zur Homepage |
Es wurden 2 Delphiprogramme zur Unterstückung der Assemblerroutine entwickelt. Das erste (Fakult
) dient zum Berechnen der
Konstanten die im Assemblercode eingebunden werden und das zweite (TestApp
) führt eine Reihe von Vergleichstests durch.
|
Zurück zur Homepage |
Dieses Programm wandelt 2π, π und (-1)n/(2n-2)! in eine Darstellung um, welche in den Assemblercode als Konstante eingebunden werden kann. Der Output schaut so aus:
PI db 53,194,104,33,162,218,15,201,0,64 PImal2 db 53,194,104,33,162,218,15,201,1,64 fakult db 15,214,71,80,44,147,51,185 ; -1/30! db 94,8,53,38,138,161,208,57 ; 1/28! db 90,78,106,252,133,142,104,186 ; -1/26! db 120,245,114,25,240,44,255,58 ; 1/24! db 83,248,183,109,57,206,144,187 ; -1/22! db 38,2,2,164,43,84,30,60 ; 1/20! db 152,125,185,99,120,130,166,188 ; -1/18! db 32,184,51,231,243,231,42,61 ; 1/16! db 158,124,192,168,116,57,169,189 ; -1/14! db 152,216,248,239,216,238,33,62 ; 1/12! db 93,159,120,183,79,126,146,190 ; -1/10! db 26,160,1,26,160,1,250,62 ; 1/8! db 23,108,193,22,108,193,86,191 ; -1/6! db 85,85,85,85,85,85,165,63 ; 1/4! db 0,0,0,0,0,0,224,191 ; -1/2! db 0,0,0,0,0,0,240,63 ; 1
Wobei hier db
für define byte steht. Die Oberfläche des Programmes schaut folgendermaßen aus.
Download der Exe-Datei
Download des Quellcodes
|
Zurück zur Homepage |
In diesem Programm wurden 2 Funktionen eingebaut. Die erste vergleicht die Performance unserer Implementation mit dem FCOS Befehl. Die zweite berechnet 80. Werte mit unserer Funktion und dem FCOS. Die jeweiligen Ergebnisse werden nebeneinander ausgegeben.
|
Zurück zur Homepage |
Der Performacetest führt einen Zeitvergleich von "_ASMCOS" mit dem Befehl "FSIN" des mathematischen Coprozessors durch. Das Programm teilt das Intervall [-2147483647,+2147483647] in 1 Million Abschnitte.
An diesen Stellen berechnet es in einer ersten Schleife den Cosinus mit Hilfe des "_ASMCOS" und in einer zweiten mit Hilfe von "FSIN".
Vor, zwischen und nach den beiden Schleifen wird jeweils die Systemzeit auf die Millisekunde genau gemessen. Die somit erhaltenen Zeitintervalle werden verglichen und man erhält den Faktor, um den die eine Routine schneller als die andere ist.
Bemerkung:
Nachdem das Ergebnis einer Funktionsberechnung unter Delphi verwendet werden muß, ist es notwendig, die berechneten Cosinuse in den Schleifen einer Variablen "tmp" zuzuordnen.
Um die Rechenzeit für die Initialisierung der Schleife möglichst wenig ins Gewicht fallen zu lassen, wird bei jedem Schleifendurchlauf 5-mal der Cosinus berechnet, das heißt es werden jeweils 5 Millionen Cosinuse von "_ASMCOS" und "FSIN" berechnet.
Download der Exe-Datei
Download des Quellcodes
Dieser Teil ermittelt für 80. Werte den Cosinus mit unserer Funktion und dem FCOS-Befehl. Die jeweiligen Ergebnisse werden nebeneinander ausgegeben.
Download der Exe-Datei
Download des Quellcodes
|
Zurück zur Homepage |