CALL und JMP Instruktion
-
Hallo,
Könnte mir jemand folgende zwei fragen Beantworten?
-Welche der beiden Instruktionen(CALL oder JMP) bedarf umfangreicher Hardwareunterstütung?
-Was passiert wenn mehrere CALL- oder JMP-Instruktionen(verschachtelt/nested) ausgeführt werden? Gibt es dafür ein Limit?
Danke in vorraus!
mfg
-
_test schrieb:
Hallo,
-Welche der beiden Instruktionen(CALL oder JMP) bedarf umfangreicher Hardwareunterstütung?jmp ändert nur EIP, call legt noch die Rücksprungadresse auf dem Stack ab (ESP wird also auch geändert).
_test schrieb:
-Was passiert wenn mehrere CALL- oder JMP-Instruktionen(verschachtelt/nested) ausgeführt werden? Gibt es dafür ein Limit?
bei call wächst der Stack mit jedem Aufruf (!: ESP wird kleiner). Das Limit währe somit der Speicher, den das Betriebssystem für den Stack bereit stellt, bzw. (theoretisch) ESP==0 unter der Annahme das dies eine gültige Addr. ist. Man muss natürlich noch beachten, dass die meisten Prozeduren/Funktionen eine Stack-frame haben (Lokale Var's).
Ich geh jetzt mal davon aus, dass du weißt das eine Prozedur/Funktion (in der Regel) mittels "ret" zum Aufrufer zurückkehrt und somit auch den Stack entsprechend anpasst.
-
Ok, alles klar! Danke schön!