Nicht angemeldet. · Kennwort vergessen · Registrieren

Musil
Mitglied seit 07/2013
10 Beiträge
Betreff: 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 :)
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
Das, was in der Animation 16-5(SPiC) erklärt wird.
King-Chris
Mitglied seit 10/2012
31 Beiträge
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 ?
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
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.
Schließen Kleiner – Größer + Auf diesen Beitrag antworten:
Prüfcode: VeriCode Gib bitte das Wort aus dem Bild ins folgende Textfeld ein. (Nur die Buchstaben eingeben, Kleinschreibung ist in Ordnung.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Weitere Zeichen:
Gehe zu Forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen