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 调试指令相关推荐

  1. bochs调试方法与指令详解

    bochs调试FAQ: 一 基本调试命令 1.       Q:如何从引导扇区开始设置断点? A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址 ...

  2. 使用 Bochs 调试操作系统

    编译安装 Bochs 下载 bochs 源码 http://sourceforge.net/projects/bochs/files/bochs/2.6.8/ 解压之后进入该目录,进行配置 sudo ...

  3. Bochs调试Linux内核初级入门2、bochs调试断点和单步指令、0x7c00、关中断和开中断指令

    前文见此: https://blog.csdn.net/bcbobo21cn/article/details/105314444 修改run.bat为:"C:\Program Files ( ...

  4. x86汇编-2(第五章)nasm汇编基础知识、指令、显存、bochs调试

    一. 汇编程序一般人为地分为代码段与数据段,不同的段的内存分配总是16字节的倍数,公式如下 设数据段或代码段为x字节,分配内存为:(x/16+x%16)*16字节 标号:标识当前位置的偏移地址,如果当 ...

  5. 用bochs调试自己写的系统引导代码

    1 安装和配置bochs 首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法 ...

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

    接此,​​​​​​Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S_bcbobo21cn的专栏-CSDN博客 看一下,0x00007c11 这里是重复执行串传送:而后一条 ...

  7. Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S

    先参阅 Bochs调试Linux内核 - 定位内核中的变量或数据结构_bcbobo21cn的专栏-CSDN博客​​​​​​ ,运行到<bochs:1>,输入vbreak 0x0000:0x ...

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

    接此: https://blog.csdn.net/bcbobo21cn/article/details/120480214 前面尝试了在线性地址下断点,都是失败:下面再研究一下: 首先看一下0.11 ...

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

    到此网址下载, http://oldlinux.org/Linux.old/bochs/linux-0.12-080324.zip 解压以后如下: 第一个文件是Bochs安装文件:安装之:安装之后如下 ...

最新文章

  1. Android JNI初试之环境搭建,最新方式的HelloWorld
  2. 独立重复实验与二项分布
  3. 链接时undefined reference to构造函数
  4. spark 简单实战_大数据入门与实战-Spark上手
  5. 巴菲特2021年致股东信披露重仓股名单
  6. 思科华为基础命令对照表
  7. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况(split、zip...)
  8. 走进AngularJs(一)angular基本概念的认识与实战
  9. PyMining-开源中文文本数据挖掘平台 Ver 0.1发布
  10. java 邮件发送 demo_Java 邮件发送Demo
  11. Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item
  12. PostgreSQL pg_stats used to estimate top N freps values and explain rows
  13. svn update出现database is locked
  14. 如何让你的程序员不要厌倦工作?
  15. 调整HTML5画布中图像的大小
  16. 寓教于乐:12个学习编程的游戏化平台
  17. 图数据库 Dgraph 学习笔记
  18. 机器翻译古文也翻车?读了20次“苟富贵勿相忘”后,谷歌:没钱的人总会被遗忘...
  19. python获取文件夹名称、文件名、去除后缀的文件名、文件改名等
  20. 旅游行业数字化进程分析——2023年元旦与春节,旅游市场开启复苏模式,跨省游热度上升

热门文章

  1. AFNetworking的基本使用
  2. 三角形 css_CSS三角形
  3. Python爬虫之实现百度翻译
  4. android abd
  5. 【R语言实例】物种分布模型介绍
  6. 见证微信小程序之火热
  7. 写入excel文件的ExcelWriter、openpyxl、xlsxwriter
  8. 看完这几道 JavaScript 面试题,让你与考官对答如流(中)
  9. 收集的一些GIS数据网站
  10. windows上配置本地深度学习工作站