您的位置:首页 > 其它

WriteOS: 关于操作系统进入保护模式的总结

2013-03-31 20:35 330 查看
转载:http://sleepycat.org/tech/os/protectmode

目录:

本文简介
1 进入保护模式的代码分析
2 关于选择子(selector)的总结
3 mov byte [LABEL_DESC_CODE32 + 4], al
4 jmp dword SelectorCode32:0
5 参考资料

本文简介

概要:总结关于操作系统进入保护模式的相关知识点
版本:NASM version 2.09.08
日期:2012-08-21
永久链接:http://sleepycat.org/tech/os/protectmode

1 进入保护模式的代码分析

代码来自《自己动手写操作系统》一书. 在原有基础上加了些自己的注释.

?

2 关于选择子(selector)的总结

selector 是对应的 GDT 相对于 GDT 起始位置的偏移量.

GDT 的长度都为 8 byte, 故 selector 的值为 8 的倍数. 也因此, 其最低 3 位正常情况下应该全为零, 但实际上, 最后 3 位被用作标志符, 标志 GDT 或 LDT 等, 故在使用 LDT 时, 需要直接修改对应的值。

3 mov byte [LABEL_DESC_CODE32 + 4], al

[LABEL_DESC_CODE32 + 4]
表示 LABEL_DESC_CODE32 所在的地址, 加上 4 个内存单位(byte)

mov byte [LABEL_DESC_CODE32 + 4], al
表示将 al 内容, 放置到 [LABEL_DESC_CODE32 + 4] 所在地址, 放置内容长度为 1 byte.

4 jmp dword SelectorCode32:0

SelectorCode32 => 选择子, 16 位, 被装入 cs.
dword => 表示后面的偏移量为 32 位. 按保护模式方式寻址.

5 参考资料

http://www.360doc.com/content/11/0409/22/6580811_108479867.shtml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐