Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >"—  Präsentation transkript:

1 Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y > j) j = y; return j; } void main() { maximum(42, 2); } Wie werden Parameter übergeben? Jede Instanz von maximum muss eine eigene Variable j besitzen. Wo liegen die lokalen Variablen? Idee: Parameter & Variablen auf den Stack legen!

2 Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 2 Lösung: C-Calling Convention ; Parameter auf den ; Stack legen push 2 push 42 ; Funktion aufrufen call maximum … ESP EBP 2 Rücksprungadr. 42

3 Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 3 Lösung: C-Calling Convention maximum proc push ebp mov ebp,esp ;lokale Variablen anlegen sub esp,4 ; Aufgabe lösen und Ergebnis ; ins EAX kopieren ; lokale Variablen entfernen add esp,4 ; ebp restaurieren pop ebp ret … ESP EBP 2 Rücksprungadr. Alter EBP j 42

4 Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 4 Lösung: C-Calling Convention ; Parameter auf den ; Stack legen push 2 push 42 ; Funktion aufrufen call maximum ; Funktionsargumente vom ; Stack nehmen add esp, 8 ; Das Ergebnis liegt im ; EAX Register … ESP EBP 2 42


Herunterladen ppt "Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >"

Ähnliche Präsentationen


Google-Anzeigen