阅读 ARM Cortex-M3 CPU 的论文后,我发现这行令人困惑:
堆栈指针的最低 2 位始终为 0,这意味着它们始终是字对齐的
我在其他地方看到过类似的说法。一些零位 => 一些对齐背后的逻辑是什么?
如果 2 个 LS 位始终为零,则地址只能是 4 的倍数,即地址只能是:
Hex Binary
xxxxxxx0 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0000
xxxxxxx4 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0100
xxxxxxx8 bbbbbbbbbbbbbbbbbbbbbbbbbbbb1000
xxxxxxxc bbbbbbbbbbbbbbbbbbbbbbbbbbbb1100
(如果有帮助,请考虑十进制的等价物 - 任何以 00 结尾的数字都是 10^2 = 100 的倍数)。