Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Delphi-Prozeduren aufrufen


SandStein - Mo 12.12.05 17:39
Titel: Delphi-Prozeduren aufrufen
Hallo, ich habe folgendes Problem.

Ich würde gerne im inline Assembler die random-Fkt aufrufen und habe keine Ahnung wie das geht.

Den Parameter einfach auf den Stack zu pushen funtzt leider nicht.

Kann mir jmd. helfen?


BenBE - Mo 12.12.05 17:52

Was brauchst Du bei der Random-Funktion von Delphi genau?

Random ohne Parameter oder Random mit Parameter als Integer? Die müssen unter ASM nämlich komplett unterschiedlich angesprochen werden.

Auf jeden Fall solltest Du Dir bereits einmal angucken, wie man Compiler-Interne Funktionen mit ASM aufruft. Dazu hab ich bzgl. RaiseException in dieser Sparte bereits einen Tipp gegeben, weil ich dieses Problem auch bereits hatte.


Allesquarks - Mo 12.12.05 17:56

die genauen Funktionsnamen weichen häufig von den Hochsprachennamen ab. Im Zweifelsfall das Assemblat ansehen. In deinem Fall glaube ich suchst du randint.

Für die Übergabe: In der Delphi Hilfe ist recht gut dokumentiert welche Typen wo übergeben werden.


BenBE - Mo 12.12.05 18:12

Funktionsnamen sind

System.@RandInt(ARange: Integer): Integer; //--> EAX In; <-- EAX Out
und
System.@RandExt: Extended; // --> None; <-- ST0 out

Nähere Informationen zum Aufruf bitte diesem Thread [http://www.delphi-forum.de/viewtopic.php?p=290872#290872] entnehmen.


SandStein - Mo 12.12.05 18:16

Boa! Vielen Dank!