首页 > 代码库 > 一个操作系统的实现中jmp dword SelectorCode32:0的理解
一个操作系统的实现中jmp dword SelectorCode32:0的理解
; 准备切换到保护模式 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的理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。