The memory model

As you know (or have you forgotten as I told you?), Intel processors use a segmented memory model. That means that every address consists of a segment and an offset. Together they form the linear address. In real mode this quite simple: The linear address is obtained by (seg << 4) + offs. Protected mode goes a different way: It's using segment descriptors. A segment descriptor is a quadword structure. There are different types of descriptors: Let's start with the easy ones.

Code segment descriptors

3130292827262524 2322212019181716 1514131211100908 0706050403020100 byte address
segment base 15..0 segment limit 15..0 0
segment base 31..24 GD0AVL segment limit 19..16 PDPLStypeA segment base 23..16 +4

Code segment descriptors contain information about a code segment, i.e. a segment containing executable code.