In an MIT course section on bootloaders, the following code is used to set up kernel code segment and data segment selectors:
.set PROT_MODE_CSEG, 0x8 # kernel code segment selector
.set PROT_MODE_DSEG, 0x10 # kernel data segment selector
The full code can be found here.
What is the meaning behind these particular segment selectors? Why are they 0x8 and 0x10? The documentation suggests that they are "32-bit code segments". What makes them 32-bit code segments?