I'm reading through my computer architecture book and I see that in an x86, 32bit CPU, the program counter is 32 bit.
So, the number of bytes it can address is 2^32 bytes, or 4GB. So it makes sense to me that most 32 bit machines limit the amount of ram to 4gb (ignoring PAE).
Am I right in assuming that a 64bit machine could theoretically address 2^64 bytes, or 16 exabytes of ram?!