80386中段寄存器分别有:
ES CS SS DS FS GS LDTR TR
共96位,其中有16位是可见的,80不可见
至于为什么是96位下面有讲
//结构体表示:
Struct Segment
{
Word selecter 可见部分
Word Atrributes 属性,可读可写可执行
DWORD Base 当前段从哪开始
DWORD LinIT 当前段整个有多少
}
mov dword ptr ds:[0x80000000],eax
这段代码执行后就出现异常,段描述符 属性决定了它能不能读写
3~15位为段选择子
此时的ds的为:0x002B,拆成二进制为:
0000000000101 0 11
RPL位为所在的级别:r0,r1,r2,r3。Ti位为0时在GDT中,1时在LDT中
GDT :48位(全局描述符表)LDT(局部描述符表)
LDT只能嵌套的存在GDT中。
GDTR是寄存器,存放着gdt表的基址