【问题标题】:How to determine if address is word aligned如何确定地址是否字对齐
【发布时间】:2010-10-13 10:13:59
【问题描述】:

您能通过查看它们来判断哪些地址是字对齐的吗?

0x000AE430
0X00014432
0X000B0737
0X0E0D8844

【问题讨论】:

  • 这是作业吗?你机器的字长是多少?是的,我可以。
  • 能被机器字长整除?
  • 对于 N 字长,地址需要是 N 的倍数。提示:对于大多数常见的 N 值,您只需查看最后一位地址。
  • 将近 5 年之后,是不是该接受答案并恭敬地向 vhallac 鞠躬了?

标签: memory-alignment


【解决方案1】:

简短的回答是,是的。但是您必须定义每个字的字节数。一些体系结构将两个字节称为一个字,将四个字节称为一个双字。在任何情况下,您只需在脑海中计算addr%word_sizeaddr&(word_size - 1),看看它是否为零。当地址是十六进制时,它是微不足道的:只看最右边的数字,看看它是否能被字长整除。

对于 4 字节的字长,示例的第二个和第三个地址未对齐。第二个有 2,第三个有 7,两者都不能被 4 整除。对于 2 字节的字长,只有第三个地址是未对齐的。

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 2023-03-21
    • 2011-02-05
    • 2021-12-15
    • 2013-10-23
    • 2011-08-21
    • 2014-11-16
    • 2016-10-05
    • 1970-01-01
    相关资源
    最近更新 更多