Seite 1 von 1

Assembler: Problem mit lokalen Variablen

Verfasst: 22.08.2005 16:02
von Eric
Ich habe eine Funktion mit einer lokalen Variable:

Code: Alles auswählen

blub:

push ebp
mov ebp,esp
sub esp,4 ;Eine lokale doubleword Variable

...

mov esp,ebp
pop ebp

ret
Und jetzt will ich an eine andere Funktion einen Zeiger auf diese Variable übergeben.

Die Variable hat in dem Fall ja die Adresse ebp-4, also hab ich folgendes probiert:

Code: Alles auswählen

push ebp
sub dword [esp],4 ;Soll eigendlich den vorher gepushten Wert verändern
call DieFunktion
aber irgendwie funktioniert das nicht...

ich habs auch schon anders probiert, klappt aber auch nicht:

Code: Alles auswählen

mov eax,ebp
sub eax,4
push eax
call DieFunktion
Ich hab auch keine Ahnung, woran es liegt (vielleicht hab ich auch nur ein riesiges Brett vorm Kopf, hab letzte Nacht kaum geschlafen...)

Verfasst: 23.08.2005 22:16
von Eric
So, jetzt hab ich mal etwas geschlafen, mir das Programm nochmal angeguckt, keinen Fehler gefunden und das ganze zum vierten Mal neu geschrieben und ... ... es funktioniert :mrgreen: