Member since Jul 2013
10 posts
|
![]()
Subject: Parameterübergabe über den Stack
Ich habe eine Frage zu folgender Klausuraufgabe:
Wie wird die Paramterübergabe über den Stack(z.B. auf einer Intel-Prozessorarchitektur) realisiert. Beschreiben Sie, wie die akutellen Paramter abgelegt werden und wie der Zugriff über die formalen Parameter erfolgt: Ich weiß nicht so ganz, was ihr hier von mir wollt, bzw. welcher Foliensatz das ist. Ich poste hier mal das, was ich hingeschrieben hätte (ich weiß aber nicht, ob das überhaupt den Kern der Frage trifft bzw. ganz richtig ist) der Stack ist in Stack-Frames unterteilt (für jede Funktion ein Stack-Frame), darin sind lokale automatic-Varialben, Rücksprungadressen und Funktionsparameter abgelegt. Der Stackpointer zeigt beim Anlegen immer hinter das aktuelle Ende, der Framepointer an den Anfang des jeweiligen Stackframes. Könntet ihr verraten, was ihr eigentlich hören wolltet ![]() |
Member since May 2011
331 posts
|
![]()
Das, was in der Animation 16-5(SPiC) erklärt wird.
|
Member since Oct 2012
31 posts
|
![]()
Passt das als Antwort dann so ? :
Noch in der main werden die aktuellen Parameter in den Stack abgelegt. Daraufhin wird noch die main return Adresse abgelegt und es folgt ein neuer Stack-Frame. Dort wird der main Framepointer abgelegt und der Inhalt der Funktion ausgeführt. Zudem wird ein Array angelegt ( ist das immer so ? ) und in den Adressen der jeweiligen Elemente des Arrays werden die Adressen der aktuellen Parameter, die in der main gespeichert sind, abgelegt. Ist das zu kompliziert beschrieben oder kommt das einer richtigen Antwort nahe ? Oder habe ich etwas falsch verstanden ? |
Member since May 2011
331 posts
|
![]()
Wie kommst du auf ein Array? Die aktuellen Parameter werden vom letzten zum ersten Parameter auf den Stack gelegt. Adressiert werden sie relativ zum Framepointer.
|
Powered by the Unclassified NewsBoard software, 20110527-dev,
© 2003-8 by Yves Goergen