实模式->保护模式->实模式 的切换步骤

1、设置必要的实模式环境,如实模式下的堆栈等。
2、初始化全局描述符表(GDT)、局部描述符表(LDT)及中断描述符表(IDT)等。
3、保存实模式下的堆栈地址到某内存处,以便切换回实模式后恢复,如有必要也可保存DS、ES、FS、GS等数据段寄存器的值。
4、加载全局描述符表至全局描述符表寄存器(GDTR),如果未定义中断描述符表,则关中断,然后打开地址线A20。
5、修改cr0的PE位为1,切换到保护模式。
6、使用段间跳转指令转到保护模式下的段,如果有局部描述符表,则应首先加载局部描述表段至局部描述符表寄存器(LDTR)。
7、设置保护模式下的堆栈段SS及堆栈指令SP(ESP)。
8、设置DS、ES、FS、GS指向某个数据段,防止无意中使用到未设置的数据段。
9、准备切换回实模式,用于切换回实模式的段必须是16位段且其段描述符必须定义在GDT中,其段限制必须是0FFFFH。
10、修改cr0的PE位为0切换回实模式。
11、恢复堆栈段至切换到保护模式之前的状态,如有必要也可恢复DS、ES等数据段。
12、关闭地址线A20。如中断为关闭状态,则打开中断。

你可能感兴趣的:(模式)