Quellcode
Die Zahl hinter dem Funktionsnamen gibt die Anzahl der Parameter an. Diese ist wichtig, damit nach dem Aufruf korrekt "aufgeräumt" wird. Im Debug-Modus, der derzeit im Interpreter noch fix eingestellt ist, wird ein Assemblerlisting für jede ASM-Funktion ausgegeben. Der Dateiname ist der Funktionsname mit der Endung "lst". Dieses Listing sieht hioer so aus:
Quellcode
Das zwingend notwendige "PUSH EBP" und "MOV EBP,ESP" am Anfang, sowie das "MOV ESP,EBP" und "POP EBP" und das "RET x" fügt XProfan selbsttätig hinzu. Vom ESP-Register (Stack) sollte man auf alle Fälle im Code die Finger lassen!
Par1 steht für [ebp + 8] (die Speicherstelle an der der erste Parameter abgelegt wird), Par2 für [ebp + 12], etc. Da wir uns in der 32-Bit-Welt befinden hat jeder Parameter eben 4 Byte! Der Wert in EAX ist der Rückgabewert der Funktion.
Der ASM-Befehl assembliert den nachfolgenden Code bis ENDASM und fügt die Funktion der Liste der importierten Funktionen bei, so wie es auch ImportDLL und ImportFunc machen. Anschließend steht die Funktion dem Programm zur Verfügung.
Gruß
Roland
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3
http://www.xprofan.de
AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3
http://www.xprofan.de
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Volkmar ()