自己写操作系统2??进入保护模式
作者:网络转载 发布时间:[ 2013/12/16 9:31:30 ] 推荐标签:
很多人会问设置了cr0不实进入到保护模式下了么,那么cpu的cs不开始做检测了么,为什么jmp还能跳转呢,因为CPU其实使用的实cs段的高速缓存,而不实真正的cs,在实模式下也是如此,只不过实模式下的高速缓存的值是cs向左移动4位形成的,而保护模式是使用选择子去找段描述符,在缓存到高速缓存中的,所以在保护模式下不是每次都去cs的段描述符去查找基地址的,而是去缓存中找,这样速度快多了。
因为此时的缓存中保护的还是实模式下的内存地址所以程序可以继续执行,但是我们要进入保护模式必须刷新cs让其变成段选择子的地址,这样用一个长跳转将cs中的值进行刷新。跳转完成后要设置新的ds,fs,ss的选择子,要不会出现些一想不到的问题。
mov eax , cr0
or eax , 0x01
mov cr0 ,eax
|
jmp dword 0x0008:(PROTECT_BEGIN-0x7E00)
后用dd命令将此程序写入虚拟硬盘镜像的第三个扇区:
dd if=protect.bin of=XXXXX.VHD seek=2 bs=512 count=1
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
浅谈操作系统对内存的管理HBase佳实践??用好你的操作系统选择适合Rails开发的操作系统三问:Linux操作系统安全加固卡巴斯基面向物联网设备发布专用操作系统卡巴斯基正式推出操作系统:非Linux,主打安全,秘研14年Linux以外的7种开源操作系统现代操作系统 - 存储设备看操作系统对程序的执行过程有哪些支持谷歌正开发融合操作系统Fuchsia,真的有必要吗?iOS在印度连第二名都排不上 本土操作系统太强大了解决Linux操作系统下AES解密失败的问题如何保护你的Linux操作系统?谷歌:安卓操作系统前景不容乐观韩国发布自主操作系统TmaxOS:兼容安卓、iOS和Windows摆脱安卓/WP依赖,华为将做自主操作系统