000
04.08.2005, 15:39 Uhr
kanonenvirus
|
also letzten feinheiten möchte ich von euch wissen die mich verwirren.
Man sagt doch das der Stack zu der niedrigsten Adresse wächst, legt man neue Daten ab. Aber was ist damit gemeint?
Sagen wir mal wir haben die Adressen 0000638ch und 000063c4h. Wcäsht jetzt jetzt zu der niedrigsten(kleinste hin), sprich nach oben oder ist damit gemeint das er zu der niedrigsten hinwächst(sprich nach unten)?
Und noch was wenn ich diesen Code hier vor mir habe:
C++: |
void main2(Parameter 1, Parameter 2) { int x = 20, y = 30, z;
x = 40; y = 60; z = x + y;
return (x + y); }
|
Wie würde es dann im Stack ungefähr aussehen? Werden die Variablen jetzt von unten nach oben ausgelsen und dann von unten nach oben auf den Stack gebracht? Und soweit ich verstanden habe fidet die Parameterübergabe von rechts nach links stat. Stimmt das?
Und wenn man die Variablen jetzt mehrmals(wie oben ) mit neuen Werten zuweist, werden diese Werte dann ebenfalls auf dem stack abgelegt? Und Wird eine einfache Variablen deklaration(int z; ) auch auf den Stack gebracht oder muss man diese mit einem Wert initialisieren(int z = 150), damit diese auf den Stack als Wert gebracht werden kann??
Code: |
0000638ch: Variable x(20) 00006390h: Variable y(30) 00006394h: Variable x(40) 00006398h: Variable y(60) 0000639ch: Variable z 000063a0h: extended base pointer 000063a4h: Rücksprungadresse 000063a8h: Parameter 1 000063ach: Parameter2
|
Laut mir würde es so auf dem Stack aussehen und es heisst der Stack wächst nach oben bzw. zu der kleineren Zahl hin. IOch hoffe Ihr könnt mir helfen. ABER BITTE KEINE SELBSTGESPRÄCHE WIEDER OK? ^^ Danke
mod edit: Code und CPP Tags hinzugefügt. Bitte, es selber tun. Dieser Post wurde am 05.08.2005 um 14:14 Uhr von Pablo editiert. |