AGB  ·  Datenschutz  ·  Impressum  







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

[ASM] Power-Geheimnisse

Ein Thema von Khabarakh · begonnen am 21. Aug 2007 · letzter Beitrag vom 21. Aug 2007
Antwort Antwort
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#1

Re: [ASM] Power-Geheimnisse

  Alt 21. Aug 2007, 11:58
Zitat von sirius:
Wo hast du denn das her?
Aus einer Unit namens "Mathe" oder so ? Turbo Delphi, sollte sich das etwas geändert haben.
Zitat:
Das ist doch viel kürzer (obs schneller ist, weis ich nicht):
Delphi-Quellcode:
function power(x,y:extended):extended;
asm
  FLD TBYTE ptr y
  FLD TBYTE ptr x
  FYL2X
Stimmt, das FLD1 und FMULP hätte ich mir an dieser Stelle sparen und FYL2X (ich liebe diesen Namen) gleich mit x und y füttern können. Mathematik nach 10 Uhr eben . Mit diesen zwei Zeilen weniger wären wir schon bei 4% Vorsprung gegenüber dem Original .
Zitat:
Es basiert eben direkt auf 2^(y*lb(x)). Jetzt ist die Frage, wie lange FYL2X, F2XM1 und FSCALE brauchen.
Es sollte aber schneller sein als exp(y*ln(x)) direkt aus der Unit math.
Jupp, auf Asm-Ebene wird das sicherlich stimmen. Aber im jenem anderen Thread suchten wir ja nach einem möglichst kurzen Power-Hochsprachen-Ersatz ohne Math-Unit. Denn sobald ich dort ein wenig mehr optimieren will, klaue ich doch gleich den Power-Code (nächste Wortspiel ) aus Math mit seinen weiteren Optimierungen (hätte nicht gedacht, dass Power wirklich eine Schleife benutzt).
Zitat:
Zu Frage I:
Schau dir mal an wozu das P hinter FMUL da ist
Zitat:
Multiply ST(i) by ST(0), store result in ST(i), and pop the register stack
Soll heißen, es passiert folgendes:
Delphi-Quellcode:
// ST0, ST1
// a, b
fxch
// b, a
fmulp st(1), st
// b, b * a
// pop ->
// b * a,
Ohne fxch gelange ich am Ende zu ST0 = a * b, wo ist also der Unterschied ?
Sebastian
Moderator in der EE
  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 22:46 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