Datenübergabe vom Assembler zu C
-
Hallo
Ich hab ein Problem mit der Datenübergabe von Assembler zu C. Ich möchte
aus meinem Assemblerprogramm ein Registerwert an ein C-Programm übergeben, in C dann die Rechnung machen und danach den errechneten Wert wieder in mein Assemblerprog. übergeben. Dieser errechnete Wert soll dann im/über das Assemblerprog. im Display ausgegeben werden.Hat das schon jemand gemacht ?
Kann mir BITTE jemand helfen ?!!Im voraus DANKE !!!
Gruß
Thiemo
-
Was benutzt du,DOS 16 Bit oder Winddows 32 Bit ?
DOS:
... push AX ;// int Test(int BX,int AX) push BX call Text add sp,4 ; in AX ist der Rückgabewert ...
Windows:
... push EAX ;// int Test(int EBX,int EAX) push EBX call Text add esp,8 ; in EAX ist der Rückgabewert ...
In C werden alle Parameter über den Stabel übergeben. (_cdecl)
Der letzte Parameter wird mit PUSH als erstes übergeben.
Rückgabewerte kommen im (E)AX Register od in DX:AX bei DOS-32-Bit.
Flieskommazahlen werden über das oberste Register des Coprozessors
zurüchgegeben.
Nach dem Aufruf musst du den Stack selber wieder aufräumen (add sp,?)