关于实模式转保护模式时CR0的问题,请赐教!!

fansaien 2002-05-01 08:42:22
我目前正在学习实模式转保护模式,其中一步是要把CR0的PE置1,一般是这么做:
MOV EAX , CR0
OR EAX , 1
MOV CR0 , EAX
可我在执行第三步时,便自行重起
但若无第二步则可运行,我怀疑是被编译优化掉了
请指教!!

附:操作系统:DOS 6.22,在CONFIG.SYS中无论加不加HIMEM.SYS & EMM386.EXE 结果都一样.
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘小辉同学 2002-05-08
  • 打赏
  • 举报
回复
你可以用Soft-Ice(Dos)

fansaien 2002-05-08
  • 打赏
  • 举报
回复
请问大家除了用JMP $指令还有没有更好的方法调试保护模式下的程序,或是有工具可以跳过
MOV CR0 , EAX,
tielian 2002-05-02
  • 打赏
  • 举报
回复
执行LGDT不会重启计算机,
fansaien 2002-05-02
  • 打赏
  • 举报
回复
多谢两位,我现在明白了是调试导致的重起,我用的是DXDEBUG,可调试386汇编的,环境就是纯DOS6.22
现在的问题就是,不能只靠jmp $来跟踪程序吧!虽然根据折半算法找起来很快,但没有别的办法了吗??
wowocock 2002-05-02
  • 打赏
  • 举报
回复
一般这种程序是在执行LGDT时候重启计算机,还有的可能是你不是在RING0层,不允许访问CR0,也就是说,你可能运行了其他保护模式程序,你可以用DOS启动盘,重新启动后再试试。
tielian 2002-05-01
  • 打赏
  • 举报
回复
你怎么知道是在那里重启计算机的?
如果你是用debug或td调试肯定重启

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧