AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler Funktion

Ein Thema von Bloodsucker · begonnen am 16. Okt 2004 · letzter Beitrag vom 16. Okt 2004
Antwort Antwort
Benutzerbild von Bloodsucker
Bloodsucker

Registriert seit: 1. Okt 2004
Ort: Schlierbach
30 Beiträge
 
Delphi 7 Personal
 
#1

Assembler Funktion

  Alt 16. Okt 2004, 09:39
Guten Morgen

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.
Daniel Wolff
Ich frage mich schon lange wieviel Geld man eigentlich mit der "Intelligenz" der Menschen verdienen kann... Hier die Antwort - http://www.funtest.de/diebspiel/?id=53360
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Assembler Funktion

  Alt 16. Okt 2004, 10:40
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?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Bloodsucker
Bloodsucker

Registriert seit: 1. Okt 2004
Ort: Schlierbach
30 Beiträge
 
Delphi 7 Personal
 
#3

Re: Assembler Funktion

  Alt 16. Okt 2004, 10:57
Tach

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?
Daniel Wolff
Ich frage mich schon lange wieviel Geld man eigentlich mit der "Intelligenz" der Menschen verdienen kann... Hier die Antwort - http://www.funtest.de/diebspiel/?id=53360
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Assembler Funktion

  Alt 16. Okt 2004, 10:58
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
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Bloodsucker
Bloodsucker

Registriert seit: 1. Okt 2004
Ort: Schlierbach
30 Beiträge
 
Delphi 7 Personal
 
#5

Re: Assembler Funktion

  Alt 16. Okt 2004, 11:04
Hast du vielleicht spontan ne Site parat, die sich mit sowas beschäftigt
Daniel Wolff
Ich frage mich schon lange wieviel Geld man eigentlich mit der "Intelligenz" der Menschen verdienen kann... Hier die Antwort - http://www.funtest.de/diebspiel/?id=53360
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Assembler Funktion

  Alt 16. Okt 2004, 11:07
Nein, tut mir leid. Aber vielleicht liest sich einer der Hobbymathemetiker aus dem Forum den Thread durch
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Bloodsucker
Bloodsucker

Registriert seit: 1. Okt 2004
Ort: Schlierbach
30 Beiträge
 
Delphi 7 Personal
 
#7

Re: Assembler Funktion

  Alt 16. Okt 2004, 11:10
Danke für deine Hilfe, Chewie
Am Besten mach ich einen neuen Thread auf
Daniel Wolff
Ich frage mich schon lange wieviel Geld man eigentlich mit der "Intelligenz" der Menschen verdienen kann... Hier die Antwort - http://www.funtest.de/diebspiel/?id=53360
  Mit Zitat antworten Zitat
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#8

Re: Assembler Funktion

  Alt 16. Okt 2004, 11:13
Schau mal auf http://www.efg2.com/Lab/
Vielleicht hilft's ja.
  Mit Zitat antworten Zitat
Benutzerbild von Bloodsucker
Bloodsucker

Registriert seit: 1. Okt 2004
Ort: Schlierbach
30 Beiträge
 
Delphi 7 Personal
 
#9

Re: Assembler Funktion

  Alt 16. Okt 2004, 11:32
Hey, die Site ist richtig gut!
Danke,Nonsense
Daniel Wolff
Ich frage mich schon lange wieviel Geld man eigentlich mit der "Intelligenz" der Menschen verdienen kann... Hier die Antwort - http://www.funtest.de/diebspiel/?id=53360
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz