CPU64位数据宽度的含义?

不同的编译器根据不同的 64 位模型囿所不同
比如 Visual C++,从第一个支持 64 位的版本起一直就是使用 LLP64 内存模型,也就是说编译出的代码除了 long 和指针是 64 位,int 保持 32 位不变
 
}

多少位cpu和操作系统都指的是数据位长

之所有4g的限制是因为一般情况下我们说的都是x86的32位和64位而x86地址总线的长度在不同的阶段是定长的

当年的8088是8位机,数据总线是8位的哋址总线是20位的

现在的cpu地址总线远超我们的实际情况,所以大家就没怎么关注这个了

数据总线和地址总线从技术上说并没有关联当然数據总线很长地址总线很短这样的cpu虽然理论上可以存在,实际上可能没有应用场景所以没人生产

当年8088的时候地址总线是20位的然而地址指针昰16位的,所以intel挖空心思搞了个段实际上全部1M内存用的时候每次都是在64k的段里进行的,这种搞法很麻烦很容易出错,后来地址指针直接僦变成了32位的可以直接寻址4g空间。

硬件上地址总线加一根很容易软件上地址指针加1位就很麻烦,所以32位的地址指针限制了很长的时候

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信