Hi All, I am developing segmentation for my kernel. In that process I choose to divide whole memory in to fixed size segments. So a 4GB memory can be divided in to 8192 segments. So I initialize segment descriptors in to the GTD withs segments base address and limit. Here base address are 0,0x10000,0x20000,..... and limit is 64kb always for every segment. For a task if I choose a segment to assign, I will place the index of that segment descriptor in to CS, DS. Now when process generates address to put on address bus, then it will do computation from logical address to linear address. After processor picks logical address, it chooses segment descriptor and adds this 32-bit logical address to segment base address to generate linear address. Now my question is, if my segment size is 64kb, how is that 32-bit offset is added to segment base address, which is not right. It should only consider 16-bit offset to add to base to generate linear address. How can I tell to my processor to choose only 16-bit offset. Does processor drives offset bit width automatically based on limit defined in segment descriptor. Any insight in to this will help me. please clarify my doubt. Waiting for you reply. Regards, Sri. -- Regards, Sri. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ