码迷,mamicode.com
首页 > 其他好文 > 详细

一个操作系统的实现中jmp dword SelectorCode32:0的理解

时间:2014-12-10 21:17:48      阅读:908      评论:0      收藏:0      [点我收藏+]

标签:操作系统   jmp   32位   


	; 准备切换到保护模式
	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的理解

标签:操作系统   jmp   32位   

原文地址:http://blog.csdn.net/u011636170/article/details/41850711

(2)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!