首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

保护模式杂问,该怎么解决

2012-03-28 
保护模式杂问 我想知道一下《自己动手写操作系统》中,对于保护模式的第一个练习,总结台下步骤:(1)准备GDT(2

保护模式杂问

我想知道一下《自己动手写操作系统》中,对于保护模式的第一个练习,总结台下步骤:
(1)准备GDT;
  (2)用lgdt加载gdtr,
(3)打开A20;
(4)置cr0的PE位。
(5)跳转,进入保护模式。

我想知道,这个步骤,有没有可能有另外一个步骤,
如1 2 43 5,或是1   4   3   2   5  


LABEL_DESC_CODE32:Descriptor               0,   SegCode32Len   -   1,   DA_C   +   DA_32;   非一致代码段,   32
在该例子中,DA_C   +   DA_32空间是两值是加起来,还是把两值并列起来,比如da_c=fa,da_32=eb,那么,两者加起来,
应该是0x15呢不是faeb??谢谢

[解决办法]
置cr0的PE位就宣告已经进入保护模式,而其他的设置是在实模式下进行的,所以我认为第4步必须在后面
DA_C + DA_32两值相加是为了设置属性,属性的设置由很多二进制位构成,将这两个值换算为2进制数我们会发现它们其实不可能在同一个位都为1,所以将它们相加其实就是将两个属性合并,就好像先用DA_C设置了某些属性位然后又用DA_32设置了另一些属性位。

热点排行