How are the 16-bit values in segment registers used to represent large memory addresses?
ES 0023 32bit 0(FFFFFFFF)
CS 001B 32bit 0(FFFFFFFF)
SS 0023 32bit 0(FFFFFFFF)
DS 0023 32bit 0(FFFFFFFF)
FS 003B 32bit 7FFDF000 (FFF)
GS 0000 NULL
For instance, how does the 003B
in FS
translate to 7FFDF000
? Why are the 0023
in ES
and the 001B
in CS
both apparently translating to 0
?
I'm digging through the Intel manuals, but hoping someone here can help me out a tiny bit quicker than I can read those...