If i had 160 GB of hard drive on a 32 bit OS what is the largest possible memory address? and if a 32 bit pointer can map upto 4 GB of memory how is it possible to map an address above 4 GB?
There is no direct mapping between memory address space and location on the HDD.
The instructions to the OS on where to find the data it needs is more
Read more here: Wikipedia on file systems
It all depends on your file system. Memory is addressed by bytes, which causes a 4GB limit (2^32). File systems are typically addressed by clusters which are larger than 1 bytes. If you used a 4KB cluster you could access 4096 * 2^32, or roughly 4TB of hard drive space. You still only access 2^32 elements but each would be 4KB in size, resulting in a total much larger than 4GB.
But the 2^32 limit can show up in other places - file systems such as NTFS can access a maximum of 4,294,967,295 files on a volume.