2010-12-10 17 views
1

für die ARM-Cortex-M3 CPU durch eine Papierlese fand ich diese Zeile verwirrend:Datenausrichtung und Null-Bit-Beziehung?

die niedrigsten 2 Bits des Stapels Zeiger immer 0 sind, was bedeutet, sie Wort

ausgerichtet sind immer

Ich habe ähnliche Aussagen an anderer Stelle gesehen. Was ist die Logik hinter einigen Null-Bits => etwas Ausrichtung?

Antwort

2

Wenn die 2 LS Bits immer Null ist, dann können die Adressen nur ein Vielfaches von 4 sein kann, dh Adressen nur lauten:

Hex  Binary 
xxxxxxx0 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0000 
xxxxxxx4 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0100 
xxxxxxx8 bbbbbbbbbbbbbbbbbbbbbbbbbbbb1000 
xxxxxxxc bbbbbbbbbbbbbbbbbbbbbbbbbbbb1100 

(Wenn es hilft, denken Sie an den entsprechenden Betrag in dezimal - jede Zahl, die Enden in 00 ist ein Vielfaches von 10^2 = 100).

+0

Oh natürlich. Irgendwie dachte ich, dass die Zeiger selbst ausgerichtet waren, wenn sie gespeichert wurden - nicht, dass sie auf ausgerichtete Daten zeigten. – Oystein