![]() |
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. :) |
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? |
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? |
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:
|
Re: Assembler Funktion
Hast du vielleicht spontan ne Site parat, die sich mit sowas beschäftigt :?:
|
Re: Assembler Funktion
Nein, tut mir leid. Aber vielleicht liest sich einer der Hobbymathemetiker aus dem Forum den Thread durch ;)
|
Re: Assembler Funktion
Danke für deine Hilfe, Chewie :thumb:
Am Besten mach ich einen neuen Thread auf :-D |
Re: Assembler Funktion
|
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