Memory 获取存储在地址空间中的内存

Memory 获取存储在地址空间中的内存,memory,byte,memory-address,microprocessors,Memory,Byte,Memory Address,Microprocessors,如果计算机处理8位大小的数据,并使用16位地址在内存中存储和检索数据,则其地址空间包含2^16(65536)字节或64k字节 我的课本上有一句话让我感到困惑。他们从哪里得到2^16?如果一台计算机使用一个16位地址,为什么它不只是一个2字节的地址空间?这本教科书没有解释内存是如何存储在微型计算机中的,在导论章节中有这样的陈述。我遗漏了什么吗?如果一个地址是16位,这意味着当引用内存中的某个位置时,您有16位。地址空间是有效地址的范围,而不是地址的物理大小 这些地址从地址0(二进制0000)开始,

如果计算机处理8位大小的数据,并使用16位地址在内存中存储和检索数据,则其地址空间包含2^16(65536)字节或64k字节


我的课本上有一句话让我感到困惑。他们从哪里得到2^16?如果一台计算机使用一个16位地址,为什么它不只是一个2字节的地址空间?这本教科书没有解释内存是如何存储在微型计算机中的,在导论章节中有这样的陈述。我遗漏了什么吗?

如果一个地址是16位,这意味着当引用内存中的某个位置时,您有16位。地址空间是有效地址的范围,而不是地址的物理大小

这些地址从地址0(二进制
0000
)开始,上升到地址216−1(二进制
1111111111111111111
)。总共有216个地址可以被引用。如果每个地址引用8位(即一个字节),那么这些地址可引用的内存总量为216×8位或216字节

作为一个较小的例子,考虑一个具有3位地址的系统,每个地址引用4位(一个字节)。 3位地址可以有23个值,从0到7,每个值表示4位内存,因此该系统总共有23=8个半字节内存

在这个系统中,唯一有效的地址是0、1、2、3、4、5、6和7,因此地址空间是集合{0、1、2、3、4、5、6、7}

重要的一点是,不要忘记地址空间不一定是实际可用的内存量计算机使用一些简便的技巧来使用比实际可用内存大得多的地址空间(例如,一个64位系统理论上可以处理264字节的内存,但计算机中甚至没有一部分内存)


地址空间的类比 以下两个类比可能有助于您理解地址空间、地址和指针之间的区别:

  • web地址空间是所有URL的集合,基本上是
    https://[domain]/[path]
    格式的字符串集合https://example.com/page是一个地址,是指向该地址的指针

  • 美国街道地址空间(大约)是以下形式的字符串集:

    [First name] [Last name]
    [number] [Street name]
    [Town], [STATE] [zip code]
    
    在相同的类比中,这是一个地址:

    John Doe
    10 Main St.
    Faketown, NY 20164
    
    最后,一个指针指向邮政部门用来投递信件的信封正面的文字


地址空间是否可以作为指向内存位置的指针?处理器如何通过一点信息找到数据?感谢您的回答。我在回答中添加了另一句话和两个类比,这可能有助于您理解地址空间是什么。至于计算机如何使用地址,您的教科书可能会有一节on这是如何工作的,如果不是,我建议将其作为一个新问题提问,并开始涉及其他一些主题,具体取决于您想知道的程度。(如果我回答了您的原始问题,请单击旁边的复选标记接受我的回答。)
John Doe
10 Main St.
Faketown, NY 20164