zoukankan      html  css  js  c++  java
  • bochs调试x86汇编

    参考:https://blog.csdn.net/YuZhiHui_No1/article/details/41446111?utm_source=blogxgwz1

    Bochs常用调试命令

    =============================================================================================

    这是本人参考《x86汇编从实模式到保护模式》--李忠   后添加的内容:

    1、设置跳过循环:当有rep movsw等类似的循环时,可以用命令:n  直接跳过循环

    2、查看通用寄存器,直接用命令:r

    3、查看段寄存器,命令:sreg

    4、查看标志寄存器,命令:info eflags;大写的位表示为1,小写的表示为0;如:SF 表示1,zf 表示0;

    5、反汇编,命令:u/指令个数  开始反汇编地址;

         如:如果要反汇编2条指令,且在当前地址开始,则:u/2 就可以;

         如:如果在主引导区开始反汇编5条指令,则:u/5 0x07c00;

        这条指令的用处是用来跳过条件循环的,比如有个  loop jnz 条件循环,想跳过这个循环,操作如下:

        a、s 单步执行到loop jnz前一条指令(s单步调试 显示的指令是接下来要执行的指令)

        b、用u反汇编两条指令,这两条指令分别是:loop jnz,和下一条指令(即,跳出循环后的第一条指令)

        c、设置断点,b  反汇编地址(loop jnz下一条指令反汇编出来的地址)

        d、直接用c执行到断点处,就可以跳出条件循环了

        下面部分是转载别人的,转载地址在最后面。下面这些命令有部分在bochs调试x86汇编时没有用,可能是版本原因,但为了保证转载文章的完整性还是全部转载过来了。我的转载地址http://blog.csdn.net/yuzhihui_no1/article/details/41446111,希望转载时,保存两部分文章的完整性。

    ==============================================================================================

    Bochs是非常好用的模拟器,命令也很多,不过最常用的其实总结起来也就包括几条,记住这些命令基本都可以满足调试需求了。

    1. 断点操作

    (1)设置断点:b 物理地址

           例:b 0x7c00 在物理地址0x7c00处设置断点

    (2)查询目前已经设置过的断点:info break

     

     

    2. 程序的执行

    (1)执行程序,直到遇到断点: c

     

     

    (2)单步执行:s

     

     

    (3)执行N条指令:step N

           例如执行3条指令: step 3

     

     

    2. 寄存器值查询

    (1)info r 这条指令会查询基本的寄存器的值,具体如下图:

     

     

    (2)dump_cpu

           这个命令显示的寄存器比info r的更全面,而且连影子寄存器的值都打印出来了:

     

     

    3. 内存内容查询

    (1)查询从某个地址开始的N个字节的内存:xp /Nbx 物理地址

           例如:xp /32bx 0x90000 查询从0x90000开始的32个字节内容

     

     

    (2)打印当前栈里的内容:print-stack

           下面的例子里:040803c0是当前运行程序的线性地址,01ff53c0是对应的实际物理地址。

     

     

    4. 反汇编一段内存:disassemble 起始地址 终止地址

        例如:disassemble 0x7c3e 0x7c40 反汇编这段地址的指令

    转载地址:http://blog.csdn.net/ddna/article/details/4997695


     
  • 相关阅读:
    mui-app 拍照、视频、图片选择,自动上传
    vue table大屏自动刷新滚动效果
    ant-design vue table表格高亮某一行 某一格
    vue-cli@3 ht 引入使用
    JAVA匿名内部类
    JAVA基本类型和引用类型
    引用 IO流学习详细教程
    JAVA多态
    JAVA数据类型能串门不?
    JAVA基本数据类型
  • 原文地址:https://www.cnblogs.com/kuangke/p/14702274.html
Copyright © 2011-2022 走看看