Deklaration der Funktion "printf" mit variabler Anzahl Parameter JWASM



  • Hallo,

    Frage 1:
    weiß jemand wie ich meine printf Funktion richtig deklariere, damit ich
    mittels invoke darauf zugreifen kann?

    Habe schon einiges versucht... aber jedesmal meldet der Compiler einen Fehler.

    printf proto :ptr byte
    

    oder

    printf proto pString:qword, :VARARG
    

    oder auch nur

    printf proto :VARARG
    

    Frage 2:
    Ebenfalls meckert der Compiler wenn ich einen lokalen Variablennamen
    mit nur einem Buchstaben erstelle z.B.

    load proc uses rax rbx rcx rdx
    local speicher:mem, var1:qword,i:qword
    
    	RET
    load endp
    

    Sobald ich aus der Variablen "i" ein "_i" machen, geht alles.

    Gruß, Nicky



  • zu 1.

    printf proto pFormat: ptr SBYTE, args:VARARG
    

    Zu beachten ist, dass Invoke für float und double (REAL4/8) nicht korrekt Implementiert ist.
    Es empfiehlt sich in diesem Zusammenhang auch mal die Options WIN64 und FRAME nachzuschlagen.

    zu 2.
    Du hast i schon mal global definiert bzw deklariert, z.B. als Variable, EQU/=, TEXTEQU, ... (BTW: c ist ein Schlüsselwort)



  • Vielen Dank,

    das war es mit der Variable i...

    Nicky 👍


Anmelden zum Antworten