.
32bit 以 1 Byte 定址,理論上可以定址到 4GB,實際上也能完整抓到 4GB。
Intel x86 CPU 自 Pentium pro 後將記憶體的定址線擴增到 36 條,能定址到 64GByte 的記憶體,
並發明一種叫 PAE 延伸定址模式,用來以 32bit 管理超過 4GB 的記憶體。
32bit 的 Win OS 的家用版、工作站版,如 Windows 95/98/2000/XP,使用 32bit 來定址,
但沒有或者關閉了 PAE 功能 ( Windows XP 有 PAE 功能,但被關閉了 ),
另外又會保留一些位址去給其它記憶單元用,不會把全部位址拿來定址記憶體插槽上面的主記憶體,
所以在 32bit 的 Win OS 的家用版、工作站版,只能抓到約 3.25 GB 的主記憶體。
32bit Win OS 的 Server 版,如 Windows 2000/2003 Server 則有包含 PAE 功能,
能使用到 64GB 的記憶體 ( 視版本的閹割而定 )
回答你的問題:
一些記憶體管理程式,可以在 Windows XP x86 版中,將 PAE 功能打開,去使用 4GB 以上的記憶體,
一般程式則無此功能,不管用量多大,就只能由作業系統分配記憶體,
x86 版的應用程式,不管是在 Win x86 或 x64,最多只能分配到 2GB,
無法繞過作業系統,去使用 2GB 以上的記憶體。為何是 2GB ??
因為微軟對應用程式故意設限,目的在於避免某個程式獨佔,影響多工的運行。
Windows 95/98/NT/2000 則根本未包含 PAE 功能。
只要將全部位址,只拿去用於定址主記憶體,就可以完整抓到 4GB
那有沒有不使用 PAE 而可抓到完整 4GB 的 32bit 程式 ? 當然有
微軟官方的記憶體檢測程式 Windows Memory Diagnostic x86 版,就可以直接完整抓到 4GB。
.