ASM Parameter von cdecl funktion mit LEAVE aufräumen?
-
Ich habe folgenden Code :
PUSH EBP MOV EBP, ESP MOV EAX, [EBP+4] ; char* Parameter PUSH EAX PUSH 3 PUSH 2 CALL some_address ; cdecl funktion ;ADD ESP, 12 ? MOV ESP, EBP ;(LEAVE) POP EBP ; RETN 4
Das soll sowas ergeben :
void __stdcall foo(char*)
Ist mit dem asm Code alles richtig ? Und muss ich den stack von dem funktionsaufruf noch durch das ADD ESP, 12 aufräumen oder reicht das LEAVE ?( MOV ESP, EBP POP EBP)
-
bei mir wird
func("a");
,wobei func mit __stdcall deklariert ist, zu
00E58520 push 0E5C94Ch 00E58525 call func (0E58080h)
kompiliert.
-
Ich meinte das die funktion vom prototyp so aussieht (stdcall -> RETN 4 etc.) Das was du meinst ist doch der funktionsaufruf ?