段寄存器:ES SS CS DS FS GS LDTR TR
读和写的区别
读:只能读16位bit: mov ax,ds
写:写的是96位bit: mov ds,ax
1.怎么证明有段寄存器有96bit?
2.写段寄存器的时候,只写了16bit?剩下的80bit呢?
struct SegMent {
WORD selector; //可见
WORD attribute; //段的属性?
//属性记录了该段是否有效,是否可读写等权限。如果往一个不可写的段执行写数据,//会报异常。
DWORD base;//基本地址 真正运行的地址 SegMent.base + dword ptr ds []
DWORD limit; //
}
段寄存器的属性探测
探测96位寄存器的存在
1.探测base
Fs
3.探测limit 属性