Entwickler-Ecke

Algorithmen, Optimierung und Assembler - C ähnlicher funktionsaufruf


Flamefire - So 11.10.09 21:29
Titel: C ähnlicher funktionsaufruf
In dem assembler Code aus verschiedenen C-programmen sehe ich häufiger solche aufrufe:

Quelltext
1:
2:
3:
4:
MOV ECX,yyy
PUSH EAX
PUSH EDX
CALL xyz


also der 1. param ist in ecx gespeichert. der rest aufm stack

kann ich in delphi das genauso machen (kompatiblität wegen einer dll datei auf die ich angewiesen bin)?
mit stdcall haut er alles auf den stack. ohne ist (fast) alles in registern...

wie geths es sauber ohne assembler?


BenBE - So 11.10.09 21:52

Gib mal bitte die Deklaration der C-Funktionen. Ich vermute aber mal cdecl oder fastcall als Aufrufkonvention.


Flamefire - So 11.10.09 22:45

hab den quelltext leider nicht.
nur die binary der dll

es scheint nur bei objekten so zu sein (in meinem fall ist das in ecx der pointer eines objektes) die variablen auf dem stack sind dann werte...

also sowas wie
fooObject.bar(23,66);


BenBE - So 11.10.09 23:12

Gibt's beispiel-Source in C? Ggf. den Author bereits angeschrieben gehabt?

Ggf. kann man sich aber auch einen kleinen C-Wrapper für die DLL schreiben ...