[笔记] x86 64 - xieyunzi/xieyunzi.github.io GitHub Wiki
x86 segment descriptor layout - why is it weird?
For compatibility with the 80286. The 80286 had a maximum segment size of 2^16 and a maximum base of 2^24. Therefore, the base and limit fields were 16 and 24 bits wide. When the size and base were expanded to 32 bits, they had to be placed somewhere else because the good places were already taken.
In short: The layout is only weird because it is a backwards-compatible extension of an older layout designed for a 16-bit processor.