CPU und Datenausrichtung
Entschuldigen Sie, wenn Sie das Gefühl haben, dass dies bereits mehrfach beantwortet wurde, aber ich benötige Antworten auf die folgenden Fragen!
Warum müssen Daten ausgerichtet werden (an 4-Byte- / 8-Byte- / 2-Byte-Grenzen)? Hier bezweifle ich, dass es durchaus möglich ist, die Speicherplätze sequentiell zu adressieren, wenn die CPU Adressleitungen Ax Ax-1 Ax-2 ... A2 A1 A0 hat. Warum müssen die Daten also an bestimmten Grenzen ausgerichtet werden?
Wie finde ich die Ausrichtungsanforderungen, wenn ich meinen Code kompiliere und die ausführbare Datei generiere?
Wenn zum Beispiel die Datenausrichtung eine 4-Byte-Grenze ist, bedeutet dies, dass sich jedes aufeinanderfolgende Byte an Modulo 4-Offsets befindet? Mein Zweifel ist, wenn Daten 4 Byte ausgerichtet sind, bedeutet das, wenn ein Byte bei 1004 ist, dann ist das nächste Byte bei 1008 (oder bei 1005)?