For example.
Making a global descriptor now looks like this,
Code: Select all
gdt[2]=makeGlobalDescriptor(
0,
0xFFFFFFFF,
memoryPresent
|ringZero
|dataSegment
|writableData
,mode32Bits|fourKiloByteBlocks
);
Code: Select all
gdt[2]=makeGlobalDescriptor(
0,
0xFFFFFFFF,
memoryPresent
0x92 // Noobs don't bother learning anything, just say the magic words
,0x9F
);
He loads 0x08 into the code segment register and 0x10 into the data segment register.
Please explain these magic numbers.