Das Befehlspaar ''enter'' und ''leave'' adjustiert den [[Stack]] für die Verwendung von [[lokalen Variablen]]. == Funktionsweise == Das Befehlspaar enter/leve war nicht zwingend notwendig, da man sie durch mehrere Befehle ersetzen kann. Da aber diese Befehlsfolge von vielen Hochsprachen häufig verwendet wurde, hat man dieses spezielle Befehlspaar eingeführt. === enter === Enter hat folgende Syntax: enter operand1, operand2 Sie lässt sich ersetzen durch: push ebp mov ebp, esp sub esp, operand1 ''operand1'' gibt also an, wieviel Speicherplatz auf dem Stack freigehalten werden soll für [[lokale Variablen]]. ''operand2'' steht für die Verschachtlungstiefe und kann auf 0 gesetzt werden. === leave === Leave macht die Änderungen von Enter rückgängig, damit der Aufrufstack wiederhergestellt wird und die Funktion zum Aufrufer zurückkehren kann: leave Sie lässt sich ersetzen durch: mov esp, ebp pop ebp == Umsetzung in verschiedenen Compilern == === gcc === [[gcc]] verwendet nur den ''leave''-Befehl, anstatt ''enter'' aber die obige Ersatzform. == siehe auch == * [[Stack]] * [[lokale Variablen]] [[Kategorie:x86-Befehle]]