When 32-bit program executes, it has access to 4-gig address space.
Any general-purpose register by itself can specify any memory location in the entire memory address space of the 4 billion memory locations
(except certain operating system-specific parts of the program that belong to the operating system.)