; 准备切换到保护模式 mov eax, cr0 or eax, 1 mov cr0, eax ; 真正进入保护模式 jmp dword SelectorCode32:0 ; 执行这一句会把 SelectorCode32 装入 cs, ; 并跳转到 Code32Selector:0 处
这段时间在一个操作系统的实现
好书啊,感谢作者
这两天一直纠结在 ;
jmp dword SelectorCode32:0 ;
这句话,看了些资料,现将自己理解的分享一下,不对的地方,大家指点一下
首先经过上面三句话之后,已经进入到了保护模式了
SelectorCode32应该是段选择子,而现在还是16位下,如果不加dword 后面的偏移地址是16位 也就是 0000h
而32下的偏移地址应该是32位,于是nasm提供了这样一个用法 jmp dword SelectorCode32:0 ;
表示后面的0是32位的,这几句代码的下面就是32位的代码了,其虚拟地址是从0开始的
经过段描述符就到了32位的代码了
一个操作系统的实现中jmp dword SelectorCode32:0的理解
原文地址:http://blog.csdn.net/u011636170/article/details/41850711