Speichererzeugung aus GCC



  • Hi Leutz

    Ich habe keine Ahnung ob der Titel so stimmt.
    Jedenfalls ist es ja so, dass man den Speicherbereich einer Funktion festlegt, indem man einen bestimmten Wert vom ESP bzw. SP subtrahiert. Wenn ich nun im GCC eine Funktion schreibe, die ein Chararray mit einer Größe von 1 erzeugt, legt er dafür 4 Bytes fest. Ist ja nichts gegen einzuwenden, lege ich jedoch mehr als 4 bytes fest, sagen wir 5 Bytes, so legt er mir nicht wie von mir erwartet 8 Bytes an, sondern 24. Gehe ich über diese Grenze hinaus sind 40, darüber hinaus sinds 56, dann 72, dann 88 und so weiter. Ist zwar ne Wunderschöne Reihe ab der 24 (immer eine Addition von 16), aber wieso denn in dieser Größenordnung? Kann man Speicher neuerdings nur noch in solchen Größen Addressieren, oder was ist los?
    Weiß jemand Rat? Sind die Texte die ich lese zu alt? Bin ich einfach bekloppt?

    MfG Nero



  • ich glaub, dass sind die Padding Bytes, weil die CPU mit solchen Blöcken besser klar kommt. Spiel mal mit den Compiler Optionen rum, dann ändert sich das wahrscheinlich.


Anmelden zum Antworten