Parametergabe von Extern an eine Funktion in einer dll



  • Hallo, ich befasse mich mit X86 Assembler und bin Einsteiger in diese Materie.
    Mein Ziel: Eine .dll zu schreiben, die Funktionen enthält, die
    ich von anderen Sprachen aufrufen kann.
    Im Internet habe ich ein Beispiel für den NAGOA Assembler gefunden.
    Dies funktioniert auch:

    %include "nagoa.inc" 
    ;Deklarationen unserer Funktionen 
    GLOBAL DllMain        ;DllEntripoint (ist in Nagoa immer DllMain) 
    GLOBAL MMTest        ;DllEntripoint 
    export MMTest 
    
    DllMain: 
    %define hInstDLL          ebp+8    ;Handle des Dll-Modules 
    %define   fdwReason  ebp+12        ;Grund, um die funktion aufzurufen, es handelt sich um ein Flag 
    %define lpvReserved ebp+16         ;reserviert 
    
    enter 0,0 
    cmp dword [fdwReason], DLL_PROCESS_DETACH 
    je @Detach 
    cmp dword [fdwReason], DLL_THREAD_DETACH 
    je @Detach 
    @Exit: 
    mov eax,TRUE 
    leave 
    ret 12 
           @Detach: 
    jmp @Exit 
    
    ;<---Ende des Dll-Entrypoint 
    
    ;Hier wird gesagt, dass wir mit 32-Bit arbeiten und, dass jetzt die Code-Section beginnt. 
    [section CODE USE32 class=CODE] 
    
    ;<---Anfang des Dll-Entrypoint
    MMTest: 
    mov eax,8 
    ret 
    ;<---Ende des Dll-Entrypoint
    

    Mir sind noch nicht alle Dinge klar, aber meine Funktion MMTest
    funktioniert.
    Ich weiß, das der Wert in eax als Rückgabeparameter übergeben wird.
    Dazu meine Frage:
    Wie wird dies mit Parametern gehandelt, die ich beim Aufruf der Funktion
    mitgeben will ?
    Gibt es dafür ein Beispiel für MASM oder NAGOA?
    Kann mir jemand weiterhelfen ?



  • Wie wird dies mit Parametern gehandelt, die ich beim Aufruf der Funktion mitgeben will ?

    ohne Kommentar


Anmelden zum Antworten