0

我正在用教科书自学汇编语言,我有一个关于计算机内存的问题。它说 32 位 PC 中可能的内存是 4,294,967,296,即 4GB。这是因为最后一个内存位置是 FFFFFFFF base 16(那里有 8 个 F)。它还继续说 2^10 是 1KB,2^30 是 1GB 等等。它还针对 64 位机器,说 64 位模式可以在内部存储 64 位地址,并且“在编写本书时,处理器最多使用可能的 64 位中的 48 位。它继续说这个限制是不匹配的,因为它最多可以寻址 2^48 字节的物理内存 (256TB),这是 32 位系统中最大值的 65,536 倍。最后还谈到了 RAM 以及它如何基本上提供内存扩展。好吧好吧,

假设您购买了具有 2 GB RAM 的 64 位 PC。已安装内存的“最后一个”字节的 16 位十六进制数字是多少?

我试图通过说我们从书中知道 2^30 = 1GB 而我说 2^x = 2GB 来解决这个问题。然后我知道一个物理地址是一个字节,所以我将 2GB 转换为相应的字节数。然后我记录了我必须为 x 求解多少字节的以 2 为底的日志。最后我得到了 2^31,但那是很多工作。然后我将它转换为十六进制给我 80000000 base 16。然后我被难住了。我看了书后面的答案,上面写着:

2 * 3^20 = 2^31 = 80000000 base 16,所以最后一个地址是 000000007FFFFFFF。

这本书是如何获得 3^20 的?当你把它全部超时 2 时,它甚至不等于 2^31。你如何解决这个问题。

另外RAM是如何对应内存的,是不是物理内存的延伸?这本书实际上并没有这么说,只是说每次计算机关闭时它都会从计算机上擦除,等等。你能给我更多的见解吗?

谢谢,-丹

4

0 回答 0