【问题标题】:Data alignment and zero-bits relation?数据对齐和零位关系?
【发布时间】:2010-12-10 21:05:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: arm alignment relation zero bits


    【解决方案1】:

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

    Hex      Binary
    xxxxxxx0 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0000
    xxxxxxx4 bbbbbbbbbbbbbbbbbbbbbbbbbbbb0100
    xxxxxxx8 bbbbbbbbbbbbbbbbbbbbbbbbbbbb1000
    xxxxxxxc bbbbbbbbbbbbbbbbbbbbbbbbbbbb1100
    

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

    【讨论】:

    • 哦,当然。不知何故,我认为指针本身在存储时是对齐的——而不是它们指向对齐的数据..
    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多