段寄存器结构
1.什么是段寄存器?有哪些
当我们用汇编读写某一地址时
mov dword ptr ds:[0x123456],eax
我们真正读写的地址是ds.base + 0x123456
段寄存器有ES CS SS DS FS GS LDTR TR
共8个
2.段寄存器结构
图形表示:
结构体表示:
struct SegMent
{
WORD Selector; // 段选择子 16位 可见
WORD Attributes; // 段属性 16位 不可见 只有少数几个属性位是有效的
DWORD Base // 段起始地址 32位 不可见 仅对于FS和GS有效
DWORD Limit // 段大小 32位 不可见 仅对于FS和GS有效
}
3.段寄存器的读写
CS 代码段寄存器
DS 数据段寄存器
SS 堆栈段寄存器
ES、FS及GS 附加数据段寄存器