the 32-bit Windows kernel is limited to 4GB of Physical Memory, not for any technical reason- just because MS set it that way. (well there are some technical reasons related to drivers, but that's not important here).
Anyway, that limit means the total physical, addressable memory is 4GB. This has to include the Mapped I/O addresses for installed hardware. For Most systems, this results in 3.5GB of usable memory.
If you have an integrated graphics card, they use System Memory as their VRAM, so if your integrated Graphics adapter is set to 1GB of VRAM, you will only see 2.5 with a 32-bit OS.