Memory management 内存中的最低和最高地址,其中最小可访问单元为4字节

Memory management 内存中的最低和最高地址,其中最小可访问单元为4字节,memory-management,address-space,Memory Management,Address Space,有人问这样一个问题:“给定2^10字节的内存,其中4字节的字是最小的可寻址单元,那么最低和最高的地址是什么?” 最低地址是0 答案键的最高地址是2^10-4,我想应该是(2^10-1)/4,因为每4个字节都有地址?所以你有2^10个字节,即1024个字节,也就是1MB。现在,内存是4字节对齐的,所以第一个地址是:0x4,最后一个地址是1020/4=255,十六进制为0xFF 您需要最高的地址,因此您的地址键是正确的。最高地址是您有足够空间(4字节)添加数据的位置。你的答案只会产生内存可以容纳的4

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

最低地址是0
答案键的最高地址是2^10-4,我想应该是(2^10-1)/4,因为每4个字节都有地址?

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

您需要最高的地址,因此您的地址键是正确的。最高地址是您有足够空间(4字节)添加数据的位置。你的答案只会产生内存可以容纳的4字节数据项的数量。

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

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

我想这个问题其实是关于路线的,但它的措辞很尴尬。你也可以试着向你的老师询问这件事,老师应该能把事情弄清楚