数据对齐和零位关系?

发布于 2024-10-06 22:48:38 字数 162 浏览 7 评论 0原文

在阅读 ARM Cortex-M3 CPU 的论文时,我发现这一行令人困惑:

栈的最低2位 指针始终为 0,这意味着 它们总是单词对齐

我在其他地方看到过类似的声明。一些零位背后的逻辑是什么 =>一些对齐?

Reading through a paper for the ARM Cortex-M3 CPU I found this line confusing:

The lowest 2 bits of the stack
pointers are always 0, which means
they are always word aligned

I have seen similar statements elsewhere. What is the logic behind some zero bits => some alignment?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风透绣罗衣 2024-10-13 22:48:38

如果 2 个 LS 位始终为零,则地址只能是 4 的倍数,即地址只能是:(

Hex      Binary
xxxxxxx0 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0000
xxxxxxx4 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0100
xxxxxxx8 bbbbbbbbbbbbbbbbbbbbbbbbbbbb1000
xxxxxxxc bbbbbbbbbbbbbbbbbbbbbbbbbbbb1100

如果有帮助,请考虑十进制的等价物 - 任何以 00 结尾的数字都是 10^2 = 100 的倍数)。

If the 2 LS bits are always zero then addresses can only be multiples of 4, i.e. addresses can only be:

Hex      Binary
xxxxxxx0 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0000
xxxxxxx4 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0100
xxxxxxx8 bbbbbbbbbbbbbbbbbbbbbbbbbbbb1000
xxxxxxxc bbbbbbbbbbbbbbbbbbbbbbbbbbbb1100

(If it helps, think of the equivalent in decimal - any number that ends in 00 is a multiple of 10^2 = 100).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文