VMware虚拟机下用debug32调试保护模式程序,由实模式切换到保护模式时出错。

icbm 2006-03-07 09:56:43
环境:VMware 5.5
Host OS : Windows 2000 Server
Guest OS : Dos 6.22

例子是李彦昌的保护模式教程里的。不用debug32调试时,程序执行是正常的,输出结果也正常。我想用debug32看一下程序的执行过程。

当执行
mov eax, cr0
and al, 1
mov cr0, eax ; 执行到这里出错。虚拟机弹出对话框,报错。

哪位朋友有类似的经验,请介绍一下。谢谢。
...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
icbm 2006-03-20
  • 打赏
  • 举报
回复
glietboys(大大(beer))的做法给了我很大启发,也非常感谢你的热心关注。:)
icbm 2006-03-20
  • 打赏
  • 举报
回复
Bochs真是个好东东!多谢老大推荐!
icbm 2006-03-09
  • 打赏
  • 举报
回复
用“debug”不行,“debug”认不出32位的指令。用“debug32”可以调试的。

李彦昌的教程里的办法是,把内容写到显示缓冲区(b8000)里,就可以看到结果了。
glietboys 2006-03-08
  • 打赏
  • 举报
回复
用DEBUG可以调试这样的模式切换的程序吗?
我一般是在程序用用一个JMP指令,让程序死循环,然后把VM挂起来,用Uedit看内存的内容。
比较麻烦的是不知道VM把寄存器的内容放到什么地方.
大熊猫侯佩 2006-03-07
  • 打赏
  • 举报
回复
调试保护模式的确很麻烦,很多 dos 调试工具一到实模转保护模式
就崩溃,我没试过自己在 保护代码中写调试中断处理,不知行不行,
或者用 Bochs 试试看。

21,458

社区成员

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

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