ASM Projekt 13 - Testumgebung

 

Gliederung

  1. Testumgebung
  2. Fakult
  3. TestApp
  4. Performancevergleich
  5. Wertevergleich


Projektüberblick ASM Frames anzeigen
Zurück zur Homepage

Die Testumgebung

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.



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Fakult

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.

Das Programm zum Berechnen der Fakultät.

Download der Exe-Datei
Download des Quellcodes



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

TestApp

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.



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Performancevergleich

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.

Das Programm für die Performancemessungen

Download der Exe-Datei
Download des Quellcodes

Wertevergleich

Dieser Teil ermittelt für 80. Werte den Cosinus mit unserer Funktion und dem FCOS-Befehl. Die jeweiligen Ergebnisse werden nebeneinander ausgegeben.

Das Programm für den Wertevergleich

Download der Exe-Datei
Download des Quellcodes



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage