英特尔平板内存型号

时间:2018-06-26 11:30:57

标签: assembly memory x86 osdev gdt

在英特尔平面内存模型中,始终使用2个GDT索引,即CODE段,DATA段,在平面内存模型中是否可以使用更多GDT索引。我的要求是要有一个带有RO的存储区域,该区域现在位于数据段中。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用尽可能多的GDT条目。但是因为只有6个段寄存器:CS SS DS ES FS GS,所以一次只能激活6个。请注意,同一描述符可以加载到多个寄存器中。

此外,同一内存区域可以由多个段映射,但具有不同的属性。特别地,实际上要求对SS(堆栈)区域进行读/写。如果它使用与DS相同的地址空间,并且您希望DS是只读的,那么从RW / RO角度来看,DS与SS的区别最少。

同样,为了方便起见,使用MOVS / CMPS / SCAS / LODS指令将DS和ES映射到同一空间。