Yes 4GB is the limit for a 32 bit processor (2^32 = 4294967296 or 4GB).
It is also the limitation for all memory on a 32bit OS; which means try
turning off your virtual memory (aka page file or swap file), and see if
the rest of the memory can be seen.
Also, Windows XP 32bit editions have a 2GB cap for user space, the rest
of your memory would be used exclusively for higher OS functions... to
increase the cap to 3GB just modify a line in your boot.ini to look like
this:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /fastdetect /3GB
There has been rumored that there is another switch in the boot.ini that
may work to see all 4GB; however I do not run any 32bit machines with
4GB, just my 64bit ones with Vista/XP x64. Here's a snippet of what that
switch should look like:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /fastdetect /PAE
And before anyone asks, no I have not found a way to modify Vista's
32bit to see all 4GB yet either.
-Luke
XP memory trivia...
The 3GB cap was only introduced in SP2. Original XP or SP1 is unaffected.
The 3GB cap was introduced to "protect" against memory exploits in
higher memory ranges.