oranges一个操作系统的实现笔记二

第二章节保护模式继续
鉴于实模式下只有1M的寻址能力,所以要在保护模式下验证他能否读写大内存的地址。
1.跳出保护模式:
oranges一个操作系统的实现笔记二_第1张图片
oranges一个操作系统的实现笔记二_第2张图片
具体步骤如下:
1.先把各个寄存器设置到一个适合回到实模式的值。
2.置位cr0的PE位为0.
3.跳回到实模式。
4.恢复实模式下各个寄存器包括sp的值。
5.关闭A20地址线。
6.开中断。
7.回到dos。

具体怎么读写大内存地址,我就不说了,反正是可以的,也不难。

LDT:
oranges一个操作系统的实现笔记二_第3张图片
oranges一个操作系统的实现笔记二_第4张图片
要注意的地方:
1.申明LDT的GDT。
2.lldt加载LDT的gdt。
3.在LDT的段里面申明局部gdt的结构体。
5.实现局部gdt的函数。

调用门:
oranges一个操作系统的实现笔记二_第5张图片
; 门 目标选择子,偏移,DCount, 属性
LABEL_CALL_GATE_TEST: Gate SelectorCodeDest, 0, 0, DA_386CGate+DA_DPL0
SelectorCallGateTest equ LABEL_CALL_GATE_TEST - LABEL_GDT
oranges一个操作系统的实现笔记二_第6张图片
oranges一个操作系统的实现笔记二_第7张图片
这个不需要啥注意的吧!一目了然!

你可能感兴趣的:(orange一个操作系统的实现)