The memory in an 8086 based system is organized as segmented memory. In this system, the complete physically available memory may be divided into a number of logical segments. Each segment is 64KB in size and addressed by one of the segment register.

The 16-bit content of the segment register actually point to the starting location of a particular segment. To address a specific memory location within a segment, we need an offset address or displacement. The offset address is also 16-bit long so that the maximum offset value can be FFFF H and the maximum size of any segment is thus 64KB locations.

The CPU 8086 is able to address 1 MB of physical memory. The complete 1 MB can be divided into 16 segment, each of 64 KB size.

Memory Segmentation

The address of the segments may be assigned as 0000 H to F000H respectively. The offset address values are from 0000 H to FFFFH so that the physical address ranges from 00000 H to FFFFF H.