text: why we need two different address registers,segment & offset address?   because of the register limits.  let's say the register can contain 16 bits of information. that would be enough to address 2^16 = 65,536 locations.  not enough. so the hard disk is divided into chunks of 65,536 bytes.  a 4 gig hard disk would need:  1 gig = 2^30 4 gigs = 4 x 2^30 divided by 2^16 = 4 x 2^14 = 2^16  exactly the width in bits of a second registers.  so 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).  modern 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.  some 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.