Выравнивание данных и отношение нулевых битов? - PullRequest
1 голос
/ 11 декабря 2010

Читая статью о процессоре ARM Cortex-M3, я нашел эту строку запутанной:

2 младших бита указателей стека всегда равны 0, что означает, что они всегда выровнены по слову

Я видел подобные заявления в других местах.Какова логика позади некоторых нулевых битов => некоторого выравнивания?

1 Ответ

2 голосов
/ 11 декабря 2010

Если 2 бита LS всегда равны нулю, то адреса могут быть кратны только 4, т. Е. Адреса могут быть только:

Hex      Binary
xxxxxxx0 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0000
xxxxxxx4 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0100
xxxxxxx8 bbbbbbbbbbbbbbbbbbbbbbbbbbbb1000
xxxxxxxc bbbbbbbbbbbbbbbbbbbbbbbbbbbb1100

(Если это помогает, подумайте об эквиваленте в десятичном формате - любое число, котороезаканчивается на 00, кратное 10 ^ 2 = 100).

...