A few things,
First, memory address is a function of your O/S and hardware. Since virtually all modern hardware can run 64bit, your O/S is the determining factor. In terms of 0's and 1's (bits), 32bits means the system address 2^32 = 4,294,967,296 possible addresses or 4GB of ram.
OK, now that is purely theoretical and your O/S will never allow any single program to monopolize all that memory. A typical O/S will set aside memory for peripherals and other background tasks and leave less than the total amount for APPLICATIONS. This is the 3-3.5GB that you normally see available in a 32Bit OS like Windows XP.
Additionally, the O/S further limits this by restricting each application to a maximum of 2GB of memory. This means that you may have 4GB max, but if you're only running one app it will not benefit any further on its own. (multi-tasking aside)
Lastly, how you set your paging file (virtual memory) plays a key role on how much physical memory your computer actually uses. Just because you have more memory doesn't mean the O/S will use it. If you have 512MB your O/S will use accordingly, and if you have 4GB it will use accordingly, but often not as much as you expect. O/S balances the physical and virtual memory to try and achieve the best performance but not exactly to your liking. I find 32Bit XP in particularly is less aggressive with memory usage as compared to Win7 and 64Bit apps, probably because it was desinged during the days when 256MB total system memory was the norm.
I run my netbook with 32Bit Windows with 2GB Ram and ZERO virtual memory (no paging file). I just have to recognize that I could run into problems with applications that require large memory footprints and must take caution not to open too many programs. However, having a paging file, even small one, slows down the netbook considerably since the solid state HD is very slow with write speed.
Some people say my O/S doesn't use all my memory, while others claim their O/S are memory hogs. Well, it depends.