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,?)


Anmelden zum Antworten