码迷,mamicode.com
首页 > 其他好文 > 详细

Bochs调试指令

时间:2020-03-21 18:15:31      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:转移   bbr   根据   重复执行   continue   res   自动完成   rom   ESS   

??Bochs就像一台真机一样,处理器在加电之后,要开始取指令并执行指令。
技术图片

jmpf f000:e05b  ;转移目标位置ROM-BIOS

??如图在左侧显示了该指令所在的物理内存地址 0x0000fffffff0

??但为什么是0x0000fffffff0?因为和8086不同,现代处理器在加电时,段寄存器CS的内容为,0xF000,指令指针寄存器IP的内容为0xFFF0,这就使得处理器地址线的低20位同样是0xFFFF0。在刚启动时,处理器将其余(高位部分)的地址线强制为高电平。因为当前Bochs虚拟机的地址线是32根,所以,初始发出的物理内存地址就是0x0000fffffff0了。

单步执行命令s(stop)

??Bochs执行一条指令,然后停下来,同时显示下一条将要执行地指令。
技术图片
??注意,物理地址变了。现代的x86处理器在加电后,所有高端的地址线都被强制为高电平,直至遇到并执行了第一个段间转移指令。

n 指令

??单步执行有一个缺点,就是会陷入同一条指令地多次重复执行里,这时用n命令,Bochs将自动完成循环过程,并在循环体外地下一条指令前停住。
技术图片

反汇编命令u

??反汇编地意思是根据机器指令代码生成可读地汇编语言指令,正好与汇编过程相反。u 命令可以使用两个参数,第一个参数是跟在 / 后面地数字,指定返汇编出多少条指令;第二条参数用于指定一个内存地址,Bochs从这里开始反汇编操作。
技术图片

断点指令 b(break)

??就是事先设置一个(物理)内存地址,当处理器执行到这个地址时,就自动停下来了。然后再输入命令 c(continue) 是持续执行的意思,该命令要求处理器不间断地持续执行指令。
技术图片

r(register)

??显示通用寄存器地内容
技术图片

sreg(segment register)

??显示段寄存器地内容
技术图片

xp(eXamine memory at Physical address)

??即,显示指定物理内存地址处地内容。xp命令每次只显示一个双子。要是显示多个双字,需要用 / 附加一个数据量。然后,还应当指定一个物理内存地址。
技术图片

info eflags

??用于显示标志寄存器地状态,如果标志寄存器名称是小写,说明该标志为0;否者该标志状态为1。
技术图片

q(quit)

??退出Bochs调试过程
技术图片

Bochs调试指令

标签:转移   bbr   根据   重复执行   continue   res   自动完成   rom   ESS   

原文地址:https://www.cnblogs.com/chengmf/p/12540327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!