《X86汇编语言 从实模式到保护模式》bochs 配置教程(详细)

本文是写给《X86汇编语言 从实模式到保护模式》读者的一份Bochs配置指南。

我们要做的有:

1.下载并安装bochs

2.配置bochs

3.通过bochs调试虚拟硬盘

bochs的官方网址:http://bochs.sourceforge.net/

bochs的下载地址:http://sourceforge.net/projects/bochs/files/bochs/

本书附带文件下载地址:https://files-cdn.cnblogs.com/files/leec/booktool.zip

1.下载并安装:

当我们打开bochs的下载地址后,会看到许多文件夹选项可供下载,这里应选择最新版本,即下载量最多的版本文件夹。

打开文件夹后出现许多选项,这里我们也应选择下载量最多的选项,因为本文的是写给windows操作系统的读者 ,所以这里选择bochs-2.6.9.exe来下载。

下载完成后点开即可安装,按照默认安装流程即可。

安装完成打开安装目录,我们会看到两个程序,分别为bochs.exe 和 bochsdbg.exe。

bochs.exe用来作为虚拟机使用。

bochsdbg.exe (bochs debug) 用来作为调试器使用,即我们可以用它来调试硬盘和程序。

2.配置bochs:

本书借bochs以调试虚拟硬盘(VHD virtual hard disk),所以我们应当使用bochsdbg.exe 而不是 bochs.exe。如果你选错了的话,会导致怎么也没有办法进入调试界面。

当我们打开bochsdbg.exe后,将会看到以下界面。在这里应当双击Edit Options框里的Disk&Boot选项,我们需要通过这里来指定硬盘信息和启动信息。

 通过点开的页面依次选择ATA channel0->First HD/CD on channel 0,并看到如下选项:

所以我们要以ATA channel 0来指定硬盘信息。

选项名:      操作: 解释:
Type of ATA device 设备类型 选择disk
我们要调试的是虚拟硬盘,所以选择disk

Path or physical device name 文件路径或物理设备名称
点击browse并选择我们的虚拟硬盘


指定虚拟硬盘路径

Type of disk image 硬盘镜像类型
选择vpc


因为VHD的硬盘格式是为VirtualPC所制定的,所以选择VPC

Cylinder,Header,Sector per track 柱面、磁头、每磁道所包含扇区
按照下方VhdWritter所读取的数据来填


当我们选择了硬盘类型之后,bochs并不会自动检测硬盘所包含信息,所以我们需要手动输入。

BIOS Detection BIOS检测
选择CMOS


以保证硬盘正常引导

其他选项可以默认,检查选择正确后,点击最上方的Boot Options ,再将选项设置为图示机可。

选项名: 操作: 解释:
Boot drive #1 第一启动设备  选择disk 因为我们所要调试的是硬盘,所以这里选择disk
Skip Floppy Boot Signature Check  跳过软盘启动信号检查  勾选 我们这里不需要软盘,所以勾选跳过
Which operating system 何种操作系统 选择none 我们的虚拟硬盘内无操作系统,所以选择none

本书作者为我们提供了可以读取虚拟硬盘信息的软件VhdWritter.exe,文件位置在“本书附带文件”->"配书源码和工具" 中,用此打开我们自己的虚拟硬盘后便可以直观的看到硬盘的详细信息。

在这里我们需要的信息是柱面(Cylinder)磁头(Header) 和 每个磁道所包含的扇区(Sector) 的数量,并填写到上方的选项中即可。

  至此检查配置无误后,选择OK,并点击save,保存配置文件即可。

3.通过bochs调试虚拟硬盘

  点击start按钮即可开启调试

我们可能会看到以下警告,选择continue即可。

最后我们就可以在console窗口里尽情调试了!

  

原文地址:https://www.cnblogs.com/cmoses/p/10329042.html

时间: 2024-10-15 23:34:03

《X86汇编语言 从实模式到保护模式》bochs 配置教程(详细)的相关文章

程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26

程序的加载和执行(六)--<x86汇编语言:从实模式到保护模式>读书笔记26 通过本文能学到什么? NASM的条件汇编 用NASM编译的时候,通过命令行选项定义宏 Makefile的条件语句 在make命令行中覆盖Makefile中的变量值 第13章习题解答 复习如何构造栈段描述符 我们接着上篇博文说. 在我修改后的文件中,用到了条件汇编. 比如: %ifdef DEBUG put_core_salt: ;打印内核的符号 ... ... put_usr_salt: ;打印用户的符号 ... .

程序的载入和运行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25

程序的载入和运行(五)--<x86汇编语言:从实模式到保护模式>读书笔记25 前面几篇博文最终把代码分析完了.这篇就来说说代码的编译.运行和调试. 1.代码的编译及写入镜像文件 之前我们都是在命令行输入命令进行编译和写入.源文件少的时候还不认为麻烦,当源文件多了,就会认为特别麻烦.有没有简单的方法呢? 当然有,就是用make工具. 1.1.什么是make工具 make是一个命令工具,它解释Makefile中的指令.在Makefile文件里描写叙述了整个project全部文件的编译顺序.编译规则

存储器的保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记18

本文是原书第12章的学习笔记. 说句题外话,这篇博文是补写的,因为让我误删了,可恶的是CSDN的回收站里找不到! 好吧,那就再写一遍,我有坚强的意志.司马迁曰:“文王拘而演<周易>:仲尼厄而作<春秋>:屈原放逐,乃赋<离骚>:左丘失明,厥有<国语>:孙子膑脚,<兵法>修列:不韦迁蜀,世传<吕览>……”好了,不煽情了,进入正题. 第12章的代码如下. 1 ;代码清单12-1 2 ;文件名:c12_mbr.asm 3 ;文件说明:硬盘主引

存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20

存储器的保护(三) 改动本章代码清单,使之能够检測1MB以上的内存空间(从地址0x0010_0000開始,不考虑快速缓存的影响).要求:对内存的读写按双字的长度进行.并在检測的同一时候显示已检測的内存数量.建议对每一个双字单元用两个花码0x55AA55AA和0xAA55AA55进行检測. 上面的文字选自原书第12章的习题1. 这篇博文就讨论一下这道题.由于是初学,我不正确自己做太高的要求.仅仅要实现功能就可以. 代码清单 ;文件说明:第12章习题-1 ;创建日期:2016-3-7 ;------

《X86汇编语言 从事模式到保护模式》问题

书中的42页,监测点4.2第一题,代码如下: mov ax, 0xb800 mov ds, ax mov [0x00], 'a' mov [0x02], 's' mov [0x04], 'm' jmp $ 编译会报错 提示没有指定操作数长度,修改后为 mov ax, 0xb800 mov ds, ax mov byte [0x00], 'a' mov byte [0x02], 's' mov byte [0x04], 'm' jmp $ 然后用书中提供的工具fixvhdwr.exe写入到虚拟机的

《80X86汇编语言程序设计教程》十 实模式与保护模式的切换实例

1.  再次声明,需要纯DOS系统才能看到满意测试效果.内容是演示实模式与保护模式切换实例,实现功能是16进制显示从110000H开始的256个字节的值 2.  源代码如下: 1 ;功能:演示实模式与保护模式的切换,16进制显示从110000H开始的256个字节的值 2 ;16位偏移的段间直接转移指令的宏定义,这是一个JMP指令到所描述的地址 3 4 JUMP macro selector,offsetv 5 db 0eah ;操作码 6 dw offsetv ;16位偏移 7 dw selec

实模式与保护模式下的分段分页机制

1. 实模式 在实模式下,CPU不会为任务提供任务的保护机制,代码任意运行.8086处理器是学习实模式的常用例子.它内部大致有以下寄存器: 8个16位的通用寄存器: AX (可以拆分成两个AH/AL的8位寄存器) BX (BH,BL) CX (CH,CL) DX (DH,DL) SI (source index, 源索引寄存器) DI (destination index, 目的索引寄存器) BP (base pointer, 基数指针寄存器) SP (stack pointer, 堆栈指针寄存

【OS】实模式和保护模式区别及寻址方式

实模式和保护模式区别及寻址方式 转载请注明出处:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程.组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的最大长度不超过64KB?而保护模式下为啥最大寻址能力就变成了64TB?每个段最大也达4GB? 更甚者分段和分页这两个高深的概念像我这种菜鸟怎么也理解不了啊!

Linux下的实模式和保护模式

实模式:(即实地址访问模式)它是Intel公司80286及以后的x86(80386,80486和80586等)兼容处理器(CPU)的一种操作模式.实模式被特殊定义为20位地址内存可访问空间上,这就意味着它的容量是2的20次幂(1M)的可访问内存空间(物理内存和BIOS-ROM),软件可通过这些地址直接访问BIOS程序和外围硬件.实模式下处理器没有硬件级的内存保护概念和多道任务的工作模式.但是为了向下兼容,所以80286及以后的x86系列兼容处理器仍然是开机启动时工作在实模式下.80186和早期的