Question: why we need two different address registers,segment & offset address? 

Answer: Because of the register limits.\n\nLet's say the register can contain 16 bits of information. That would be enough to address 2^16 = 65,536 locations.\n\nNot enough. So the hard disk is divided into chunks of 65,536 bytes.\n\nA 4 gig hard disk would need:\n\n1 gig = 2^30\n4 gigs = 4 x 2^30 divided by 2^16 = 4 x 2^14 = 2^16\n\nExactly the width in bits of a second registers.\n\nSo to address a specific byte in this 4 gigs hard disk, you need first to know in which chunk it is (first register = segment pointer) and second you need to know which of the bytes in that register interests us (second register = offset pointer).\n\nModern disks use an extra virtual register (half of a third register) to spand the number of addresses up to 2^8 x 2^16 x 2^16 = 2^10 x 2^30 = 1024 gigabytes.\n\nSome big computers have 32-bit width registers, which means only one register would be needed to find any offset address in a whole 4 gig HD.
This question from the Yahoo Q&A forum is categorized in the topic: Sports