社区
汇编语言
帖子详情
关于开启保护模式开关后向32位代码段跳转的问题
happynxy
2009-01-18 04:28:16
今天在看《自己动手写操作系统》的时候,46页下方在开启保护模式开关后,开始向32位代码段跳转:
jmp dword SelectorCode32:0
我的问题是:在jmp之前已经开启了保护模式的开关,是不是现在CPU就已经运行在保护模式下了?既然是这样,那这时的CPU应该认为CS中存放的是选择子,而实际上此时CS存放的还是实模式下的代码段,那么CPU此时再按照选择子来寻找下一条指令的时候,应该无法找到jmp这条指令啊?
请高手赐教!
...全文
89
4
打赏
收藏
关于开启保护模式开关后向32位代码段跳转的问题
今天在看《自己动手写操作系统》的时候,46页下方在开启保护模式开关后,开始向32位代码段跳转: jmp dword SelectorCode32:0 我的问题是:在jmp之前已经开启了保护模式的开关,是不是现在CPU就已经运行在保护模式下了?既然是这样,那这时的CPU应该认为CS中存放的是选择子,而实际上此时CS存放的还是实模式下的代码段,那么CPU此时再按照选择子来寻找下一条指令的时候,应该无法找到jmp这条指令啊? 请高手赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happynxy
2009-01-18
打赏
举报
回复
谢谢!
cnzdgs
2009-01-18
打赏
举报
回复
可以。
happynxy
2009-01-18
打赏
举报
回复
那这个时候我可以进行段内的跳转吗?
cnzdgs
2009-01-18
打赏
举报
回复
在没有修改cs之前,CPU仍按顺序执行后面的指令。
操作系统学习12 进入
32位
保护模式
本文详细讲解x86架构下从16位实模式切换至
32位
保护模式
的核心过程,涵盖GDT构造、
段
描述符与选择子定义、GDTR加载、CR0.PE置位、A20地址线
开启
及远
跳转
刷新CS等关键步骤;通过汇编
代码
在512字节引导扇区中实现模式切换,并向显存写入字符验证结果,强调
保护模式
下4G线性寻址、
段
寄存器语义变化及硬件机制。
桌面电脑操作系统开发笔记(4)——进入
32位
保护模式
本文介绍了进入
32位
保护模式
的方法,包括解决A20地址线
问题
、禁止中断、设置描述符表等内容,并提供了Linux和MenuetOS的实现参考。
X86
保护模式
(一)· 何为
保护模式
本文深入探讨了x86架构处理器的
保护模式
,从诞生背景到全局描述符表GDT的定义,再到进入
保护模式
的详细步骤,包括
开启
A20地址线、设置CR0的PE位等。同时,文章对比了80286与
32位
处理器在
保护模式
下的内存访问差异。
【让CPU进
保护模式
之进
保护模式
流程以及C语言调试环境搭建】
本文介绍如何使CPU从实模式切换到
32位
保护模式
,包括关闭中断、加载GDT、
开启
A20总线及
跳转
到
32位
代码
段
。同时,在内核中引入C语言支持,并通过Makefile构建可调试的ELF镜像,利用QEMU实现单步调试C程序的操作系统开发环境。
操作系统汇编教程(第08课):切换到
32位
保护模式
并打印字符(Protected Mode Hello)
本博客是操作系统汇编教程第08课,介绍从16位实模式切换到
32位
保护模式
并打印字符。先说明目标,接着讲解实模式与
保护模式
区别、GDT表及
开启
保护模式
步骤,详解核心汇编指令,给出完整
代码
,还介绍在Ubuntu下的编译与测试,最后总结知识点并预告下节内容。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章