32位最大内存利用只能是4GB吗，但是8位的单片机，它是用2Byte做地址的啊，可以寻址64KB内存？
如果说32位做大只能寻址4G（那么计算机的硬盘也是有地址的吧，最小的硬盘也大于4G吧），那么8位的是不是就只有255Byte了呢？可不可以是32位的系统，但是用超过4Byte位数分配。
## 不是，能用多大内存要看地址总线宽度。

事实上，初代PC的8086就是16位的CPU，但地址总线是20位，可以支持最大1MB（2²⁰ Byte）内存。

奔腾Pro及以后的32位CPU支持PAE(Physics Address Extension，物理地址扩展)，地址总线是36位，支持最大64G内存。

反倒是现在的64位CPU，物理地址总线只有48位，最大只能使用2⁴⁸=256TB物理内存，而不是2⁶⁴=16EB。

8086和奔腾Pro扩展内存总线的方式略有不同：

8086是段寄存器左移四位+地址寄存器的方式来访问20位内存地址，理论上任何应用都可以使用1MB内存。

PAE是通过保护模式中的转换页表增加一级（4KB页从3级增加到4级，4MB页从2级增加到3级），从而允许操作系统访问大于4GB内存，但单个进程还是只能使用4GB的虚拟内存地址。Windows默认设置下，这4GB内存地址还有2GB是系统保留。也就是说用户需要同时运行31个使用2GB内存的应用才能用上64GB内存。所以只有服务器版本的Windows才支持PAE技术，客户端版本都是默认关闭PAE支持的。