Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行相关的知识,希望对你有一定的参考价值。

 接此,​​​​​​Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S_bcbobo21cn的专栏-CSDN博客

 看一下,0x00007c11 这里是重复执行串传送;而后一条是跳转到9000:0018处执行;

跳转之前代码段是0x0000,跳转后是0x9000;查看CS寄存器;

用reg指令看不到,只看到通用寄存器;

 

用dump_cpu或sreg均提示出错;也许用的bochs被精简了,或配置的问题,

 

就是执行完 0x00007c11 处的指令后,将执行0x9000:0x0018处的指令;

用step单步执行,一直都在7c11这里循环;

 

资料是说用 s 256 直接过去;s 256 = step 256,往后执行256条;由于上面已经 step 了几次,输个 s 248,

 

再 step 二次,才开始执行 9000:0018处的指令;

 

下面几条指令是把ds,es,ss都设置成移动后的代码所在的段(0x90000)并设置堆栈在0x9000:0xff00;下回继续;

 

 

以上是关于Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行的主要内容,如果未能解决你的问题,请参考以下文章

Bochs调试Linux内核 - 定位内核中的变量或数据结构

Bochs调试Linux内核初步学习 - 3

跟踪调试Linux内核的启动过程

linux内核调试的主要方法

Linux内核开发——内核镜像文件及启动过程

构建调试Linux内核网络代码的环境MenuOS系统