自制操作系统

bochs调试 WONDOWS 10

基本配置

1.启动双击bochsdbg.exe  

2.启动配置

常用调试命令

断点操作

b [address] 设置断点,其中 [address] 可以是物理地址(如 pb 0x7c00)、虚拟地址(如 vb 0:0x7c00)或线性地址(如 lb 0x7c00)。

物理地址

pb 0x7c00

虚拟地址

vb 0:0x7c00

线性地址

lb 0x7c00

info break 查询已经设置的所有断点。

程序执行控制

c 或 cont 或 continue 继续执行程序,直到遇到下一个断点。

继续执行,直到遇到下一个断点

c


s 或 step 或 si 或 stepi 单步执行指令。如果带参数 [count],则执行指定数量的指令,如 step 3 将执行接下来的三条指令。

执行1个命令

s

执行3个命令

step 3

寄存器查询

  • 段寄存器查询

sreg

  • 普通寄存器查询

reg 

  •  寄存器查询

dump_cpu

info [registers] 或 i r 显示所有寄存器的当前值

查询cup 寄存器的值

info cup 

  • 内存操作

x /fmt [address] [size] 查看内存区域的内容。/fmt 可以是 /x(十六进制)、/o(八进制)、/d(十进制)或 /a(ASCII)。
mwrite [address] [data] 向内存地址写入数据。

  • 其他命令

q 或 quit 或 exit 停止调试并退出 Bochs。
help 或 h 显示帮助信息,可以跟具体命令获取详细帮助,如 help x。

  • 反汇编

disassemble [start] [end] 或 dis 反汇编指定范围内的机器码。

  • 断点管理

delete 或 del 或 d [breakpoint number] 删除指定的断点。

寄存器

段寄存器

cs:ip   代码段

ds 数据段

 mov ax, [bx] ;等价于:mov ax, [ds:bx]

ss :sp 堆栈段  bp 

附加段:ES、FS、GS

数据访问:AX,BX.CX,SI,DI

写入磁盘命令

dd if=mbr.bin of=.vhd bs=512 count=1 seek=2

参数解析

  • if=mbr.bin: 指定输入文件为mbr.bin,通常这是一个包含主引导记录(MBR)的二进制文件。
  • of=.vhd: 指定输出文件为.vhd,这是Virtual Hard Disk(虚拟硬盘)的文件格式,常用于虚拟机环境。
  • bs=512: 设置每次读取或写入的数据块大小为512字节,这通常是磁盘扇区的标准大小。
  • count=1: 只读取并写入一个数据块。
  • seek=2: 在输出文件中跳过前两个512字节的块,从第三个512字节块开始写入数据。

中断

 int 10

  •  AH = 00h:设置显示模式,如文本模式或图形模式。
  • AH = 01h:光标位置,设置光标在屏幕上的位置。
  • AH = 02h:写入字符,将一个字符写入当前光标位置。
  • AH = 03h:读取字符,从当前光标位置读取一个字符。
  • AH = 04h:写入字符串,将一个字符串写入当前光标位置。
  • AH = 05h:读取字符串,从当前光标位置读取一个字符串。
  • AH = 06h:清屏,清除屏幕显示。
  • AH = 07h:设置光标形状。
  • AH = 08h:设置光标可见性。
  • AH = 09h:设置字符属性。
  • AH = 0Ah:设置光标起始位置。
  • AH = 0Bh:设置光标结束位置。
  • AH = 0Ch:设置字符颜色。
  • AH = 0Dh:设置页面颜色。
  • AH = 0Eh:在当前光标位置输出一个字符。
  • AH = 0Fh:读取光标位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值