Ich weiß nicht ganz genau was du nicht verstehst. Probiere aber trotzdem mal das weiter zu erklären. Ich gehe davon aus, dass sich dein Code auf einen x86 bezieht. Zu Beachten ist, dass hier der Stack richtung kleinerer Adressen wächst.
Der Code ruft eine Funktion f1 auf. Die Parameter liegen vor Ausführung des Codes in eax und ebx. Eine Erklärung zu push und pop habe ich auf http://www.activevb.de/tutorials/tut_asm/asm2.html gefunden (ich komme immer durcheinander mit der Reinfolge von Dekrementieren und kopieren).
push eax ; zweiter Parameter fuer f1
push ebx ; erster Parameter fuer f1
Push subtrahiert vom Stackzeiger (ESP) um 4 (Größe von den Registern) und kopiert anschließend den Weg an die Stelle von ESP. Damit zeigt nach der Ausführung ESP auf eine Speicherzelle, die den Wert von EBX enthält und ESP+4 auf eine Speicherzelle von EAX.
call f1
hier wird dann doch die Adresse des darauffolgenden Befehls auf den Stack gesichert: ESP wird um 4 erniedrigt und die Adresse des dem call folgendem Befehls (hier add) abgelegt. Bei dem Return unten wird der Wert wieder um 4 erhöht. Damit hat ESP vor dem Add den gleichen Wert wie vor dem call.
add esp,8 ; Parameter vom Stack entfernen
Die 8 ist die Summe der beiden Push-Befehle. Damit hat nach dem add ESP den gleichen Wert, wie vor dem ersten push.
f1: push ebp
Nach diesem Push zeigt ESP auf den Wert von dem Wert von EBP, ESP+4 auf die Rücksprungadresse, ESP+8 auf den oben angegeben Wert von EBX und ESP+12 auf den oben angegebenen Wert von EAX.
mov ebp,esp
Da sich der Stackpointer beim Programmlauf häufiger ändern könnte, wird statt dessen der Wert in EBP verwendet. Soweit ich weiß, könnte man inzwischen auch direkt ESP für die Adressierung verwenden alte Prozessoren haben dies aber nicht unterstützt (vor 386 oder vor 286).
…
mov ebx,[ebp+8] ; 1. Parameter in ebx laden
mov eax,[ebp+12] ; 2. Parameter in eax laden
…
pop ebp
Alten EBP wiederherstellen. Da jede Funktion immer den alten Wert herstellen muss, kann man so auch einfach rekursive Funktionen bauen (jede Funktion würde erneut EBP sichern und entsprechend laden.
ret
zürück zum Aufrufer: Forsetzen an der Stelle, wo ESP draufzeigt und anschließend ESP um 4 erhöhen.