bochs调试简单操作系统方法
我用的是bochs 2.6.11 首先进入bochs的调试模式使用的是 ,打开bochsdbg。同理他也会让你选择配置文件。 选择完了配置文件,弹出两个窗口,一个是调试命令行,一个是操作系统窗口 最初的时候,他会显示一些日志,然后注意: 显示了下一条指令的所在地和指令内容。我们观察因为实模式下 BIOS的引导代码实在 0xf000:0xfff0这里,也就是机器一加电后,cs和ip的初始化内容,我们可以看到他要跳转到 0xf000:e05b这里,这个时候才是我们真正的BIOS代码。 之后查看 0x7c00:0000这里,发现他的内容是0000,这个是正常的,毕竟我们的mbr是需要BIOS加载到对应位置的,这个时候BIOS还没有运行呢。 下面引入一下实模式的内存布局,方便没有了解过的小伙伴们学习。 接着引入bochs的调试方法 首先是xp命令 (提示:bochs下的一个字 是 四个字节) xp/ 这后面可以跟 b h w g 分别对应的是 字节 两个字节 一个字 两个字 之后跟内存地址 (注意上面指令指定了一次显示内存单元的大小之后再次查看内存单元就是以一个字节来访问的了, xp/4 0x7c00 xp之后跟数字就是连续查看几个单元,所以应该是查看4个字节) 之后是 u命令 用来将内存数据反汇编成指令 u后面加需要反汇编的指令数和起始地址,例如: u [num] [start]