Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Assembler Funktion (https://www.delphipraxis.net/31961-assembler-funktion.html)

Bloodsucker 16. Okt 2004 09:39


Assembler Funktion
 
Guten Morgen :hi:

Ich habe hier eine Funktion in Delphi geschrieben, die den aktuellen Winkel zwischen x1 und x2 wiedergibt:

Winkel := radtodeg(ArcSin((x1-x2)/(Sqrt(Sqr(x1-x2)+Sqr(y1-y2)))));

Im Moment verwende ich die Math-Unit dazu.
Kann mir jemand diese Funktion in Assembler übersetzten, die ich dann in mein kleines Programm übernehmen kann :?:

Danke im Vorraus. :)

Chewie 16. Okt 2004 10:40

Re: Assembler Funktion
 
Wieso willst du das tun? Solange du Funktionen wie ArcSin usw. aufrufst, wirst du mit selbst geschriebenem Assembler-Code keine höhere Performance erreichen. Die kriegst du höchstens dann, wenn du sämntliche benutzte Bibliotheksfunktionen nachschreibst, am besten Inline (also nicht als seperate Funktionen, sondern im Codesegment). Allerdings bezweifle ich, dass du die so einfach performant nachbauen kannst, da die Funktionen der Standard-Bibliothek ziemlich optimiert sein dürften.
Und selbst wenn, sparst du dir nur die Funktionsaufrufe, was vielleicht ~100 Takte ausmacht, auf einer 1GHz-CPU also 100 ns. Lohnt sich dafür der Aufwand?

Bloodsucker 16. Okt 2004 10:57

Re: Assembler Funktion
 
Tach :hi:

Ich benutzte diese Funktion in einem Spiel um den Winkel zum Spieler bzw. einem anderen Objekt zu bestimmen. Da die Funktion in jedem Rechendurchlauf benutzt wird, kostet das Frames.
Gibt es den eine andere Möglichkeit, da ganze zu beschleunigen?

Vielleicht hast du ja ein Tipp wie ich die Funktion umschreiben könnte um den gleichen Effekt zu erzielen?

Chewie 16. Okt 2004 10:58

Re: Assembler Funktion
 
Vielleicht gibt es einen mathematischen Ausweg, dein Problem näher zu definieren und deswegen eine kürzere Rechnung zu finden. Da bin ich aber nicht der richtige Ansprechpartner :stupid:

Bloodsucker 16. Okt 2004 11:04

Re: Assembler Funktion
 
Hast du vielleicht spontan ne Site parat, die sich mit sowas beschäftigt :?:

Chewie 16. Okt 2004 11:07

Re: Assembler Funktion
 
Nein, tut mir leid. Aber vielleicht liest sich einer der Hobbymathemetiker aus dem Forum den Thread durch ;)

Bloodsucker 16. Okt 2004 11:10

Re: Assembler Funktion
 
Danke für deine Hilfe, Chewie :thumb:
Am Besten mach ich einen neuen Thread auf :-D

Nonsense 16. Okt 2004 11:13

Re: Assembler Funktion
 
Schau mal auf http://www.efg2.com/Lab/
Vielleicht hilft's ja.

Bloodsucker 16. Okt 2004 11:32

Re: Assembler Funktion
 
Hey, die Site ist richtig gut!
Danke,Nonsense :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz