What is the size of segment registers (CS,DS,SS) in 80386. I know they contain a visible and a hidden part. The visible part is the one which the programmer can see and the hidden part is the one which is used as a cache for storing the base, limit and attributes of the segment. The size of the visible part is 16 bits but what about the hidden part? And if the size of this register is not 16 bits then why do we say this is a 16 bit register?
This is not a simple answer. You need to start out with the 8080 CPU that addresses only 65000 of memory and work your way forward through all the different versions.
The way the 80386 addresses memory evolved. Some of the CPUs have more than one mode.
I hope the link below helps.