Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Walthari Redlich Geändert vor über 10 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.