【问题标题】:lowest and highest address in memorey where smallest accesible unit is 4 bytes内存中的最低和最高地址,其中最小可访问单元为 4 个字节
【发布时间】:2012-02-25 21:40:53
【问题描述】:

有人问了一个问题:“给定 2^10 字节的内存,其中 4 字节的字是最小的可寻址单元,最低和最高地址是什么?”

最低地址为0 答案键的最高地址是 2^10-4 我以为是 (2^10-1)/4 因为每 4 个字节都被寻址?

【问题讨论】:

    标签: memory-management address-space


    【解决方案1】:

    我猜提出这个问题的人纠结于自己的定义。实际上,如果“最小可寻址单元”是“4字节字”,那么在2^10字节中有2^8个不同的地址,这意味着最高地址是2^8-1或255。

    在典型的计算机体系结构中,情况并非如此。最小的可寻址单元实际上是一个字节(因为所有地址都表示从“开始”开始的字节数),但有效地址只是那些被4除的。所以0是有效地址,4是有效地址是一个有效的地址,但尝试使用 3 会导致异常。顺便说一下,这被称为“对齐”,不同的指令可能需要不同的对齐,其可以从 1 到 128 不等,有时甚至更多。通常它是 2 的幂,因为它们很容易使用。

    我想这个问题实际上是关于对齐的,但它的措辞很尴尬。您也可以尝试向您的老师询问此事,他们应该能够解决问题。

    【讨论】:

      【解决方案2】:

      所以你有 2^10 个字节,即 1024 个字节,即 1MB。现在你的内存是 4 字节对齐的,所以第一个地址是:0x4,最后一个地址是 1020/4 = 255,即十六进制的 0xFF。

      【讨论】:

        【解决方案3】:

        你想要最高的地址,所以你的地址键是正确的。最高地址将是您有足够空间(4 个字节)来添加数据的位置。您的回答只是产生内存可以容纳的 4 字节数据项的数量。

        【讨论】:

          猜你喜欢
          • 2014-12-19
          • 1970-01-01
          • 1970-01-01
          • 2021-10-01
          • 2015-08-13
          • 2021-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多