Bochs 调试指令
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 调试指令相关推荐
- bochs调试方法与指令详解
bochs调试FAQ: 一 基本调试命令 1. Q:如何从引导扇区开始设置断点? A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址 ...
- 使用 Bochs 调试操作系统
编译安装 Bochs 下载 bochs 源码 http://sourceforge.net/projects/bochs/files/bochs/2.6.8/ 解压之后进入该目录,进行配置 sudo ...
- Bochs调试Linux内核初级入门2、bochs调试断点和单步指令、0x7c00、关中断和开中断指令
前文见此: https://blog.csdn.net/bcbobo21cn/article/details/105314444 修改run.bat为:"C:\Program Files ( ...
- x86汇编-2(第五章)nasm汇编基础知识、指令、显存、bochs调试
一. 汇编程序一般人为地分为代码段与数据段,不同的段的内存分配总是16字节的倍数,公式如下 设数据段或代码段为x字节,分配内存为:(x/16+x%16)*16字节 标号:标识当前位置的偏移地址,如果当 ...
- 用bochs调试自己写的系统引导代码
1 安装和配置bochs 首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法 ...
- Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行
接此,Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S_bcbobo21cn的专栏-CSDN博客 看一下,0x00007c11 这里是重复执行串传送:而后一条 ...
- Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S
先参阅 Bochs调试Linux内核 - 定位内核中的变量或数据结构_bcbobo21cn的专栏-CSDN博客 ,运行到<bochs:1>,输入vbreak 0x0000:0x ...
- Bochs调试Linux内核初步学习 - 3
接此: https://blog.csdn.net/bcbobo21cn/article/details/120480214 前面尝试了在线性地址下断点,都是失败:下面再研究一下: 首先看一下0.11 ...
- Bochs调试Linux内核 - 定位内核中的变量或数据结构
到此网址下载, http://oldlinux.org/Linux.old/bochs/linux-0.12-080324.zip 解压以后如下: 第一个文件是Bochs安装文件:安装之:安装之后如下 ...
最新文章
- Android JNI初试之环境搭建,最新方式的HelloWorld
- 独立重复实验与二项分布
- 链接时undefined reference to构造函数
- spark 简单实战_大数据入门与实战-Spark上手
- 巴菲特2021年致股东信披露重仓股名单
- 思科华为基础命令对照表
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况(split、zip...)
- 走进AngularJs(一)angular基本概念的认识与实战
- PyMining-开源中文文本数据挖掘平台 Ver 0.1发布
- java 邮件发送 demo_Java 邮件发送Demo
- Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item
- PostgreSQL pg_stats used to estimate top N freps values and explain rows
- svn update出现database is locked
- 如何让你的程序员不要厌倦工作?
- 调整HTML5画布中图像的大小
- 寓教于乐:12个学习编程的游戏化平台
- 图数据库 Dgraph 学习笔记
- 机器翻译古文也翻车?读了20次“苟富贵勿相忘”后,谷歌:没钱的人总会被遗忘...
- python获取文件夹名称、文件名、去除后缀的文件名、文件改名等
- 旅游行业数字化进程分析——2023年元旦与春节,旅游市场开启复苏模式,跨省游热度上升