gcc-Befehle
-
Die Adresse des (aktiven) Stackrahmens.
-
Also wird im Fall num=2 ein 2^2 = 4 Byte großer Puffer vor den Stack-Rahmen gesetzt?
-
Steht da etwas von Puffer?
-
Also wörtlich übersetzt steht da, dass bestrebt wird, den Stack-Rahmen an einen 2^num byte-Rahmen anzupassen. Ich hatte mir überlegt, dass dieses "anpassen" mit einem Puffer zu tun haben könnte.
Kannst du mir erklären, was damit genau gemeint ist? Ich sollte den Befehl zum Kompilieren verwenden und würde gerne verstehen, was dahinter steckt.
-
Kann mir keiner weiterhelfen?
-
re342 schrieb:
Kann mir keiner weiterhelfen?
Wir verstehen nicht, was du nicht verstehst. Hör einfach auf, dir irgendwelche Puffer auszudenken! Mit dem Schalter kann man die Ausrichtung des Stackrahmens beeinflussen, nicht mehr und nicht weniger.
-
Danke für die Antwort.
Was meinst du denn genau mit der Ausrichtung? Ist damit die Größe der Abschnitte in Bytes gemeint?
Sorry, wenn die Fragen für euch trivial sind und ihr deshalb nicht versteht, wo mein Verständnisproblem ist. Ich habe aber erst ganz selten mit dem Stack gearbeitet und kenne mich damit wenig aus. Und ich möchte einfach verstehen, was ich tue.
Und der Stackrahmen? Ist das der für lokale Funktionen reservierte Bereich vom Stack?
-
Ich habe jetzt herausgefunden, dass es etwas mit "Stack Alignment" zu tun hat. Ist mit 4 Byte-Rahmen gemeint, dass dann der Stack-Rahmen aus 4 Byte-Blöcken besteht und die Daten dementsprechend ausgerichtet werden?
-
Die Start-Adresse (ST) des Stacks wird entsprechend so ausgerichtet, daß (ST mod (2^num)) == 0 ist (wobei ^ hier als Exponentialzeichen [nicht als XOR] gemeint ist). Ob davor noch evtl. (reservierter) Speicher ist, spielt keine Rolle.
-
Ok, vielen Dank!