32 Bit has limitations. The first and largest Limitation is the 4GB limit. Meaning that 32 Bit can not and will not recognize or utilize 4GB of RAM. The Max you will get is 3.5GB of RAM recognized and utilized on a 32 Bit system. No before anyone goes off on me for the fact that Vista SP1 will show that you have 4GB installed you still do not get to utilize that 4GB as it will not use that other 512MB.
In order to access Address X, the CPU needs to store the value of X in a register in the CPU and tell the memory to read the contents of the address stored in that register.
Registers in x86 PCs are limited to 32 bits, which means the biggest number that can be stored in that register is 2^32, or 4,294,967,296; which means that the CPU can access up to "ADDRESS 4,294,967,296" which is the 4th GB of data.
The problem is that the CPU also access I/O devices (printer, USB, keyboard, mouse, monitor, etc.) by assigning them an address as well. So it reserves half a GB or so of the memory addresses to talk to the I/O devices... So you have 4GB - ~0.5GB -> 3.5 GB (on Windows it is 3.2GB).
This is the only reason x64 was invented.
I hope this better explains why 32 Bit will never be able to see or use 4GB of RAM. Also taking into account that your Video card's memory is also tallied into the equation as mentioned above. So take away the Video Memory and hte 80MB already taken out from Windows and you have your answer.