好的,这个问题听起来很简单,但却让我感到惊讶。在古老的时代,1兆字节是巨大的内存量,英特尔正在尝试找出如何使用16位来访问1兆字节的内存。他们想出了使用段和偏移地址值生成20位地址的方法。
现在,20位可以寻址2^20 = 1,048,576个位置。假设我们每个地址位置访问1个字节,那么我们得到1,048,576/(1024*1024) = 2^20/2^20兆字节 = 1兆字节。好的,明白了。
混淆出现在这里,我们在古老的8086中有16位数据总线,每次可以访问2个字节而不是1个,这相当于20位地址能够访问总共2兆字节的数据,对吗?为什么我们假设每个地址只存储1个字节,而数据总线是2个字节宽度呢?我在这里感到困惑。