问题标签 [bochs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
324 浏览

assembly - 内核没有被加载到正确的地址

好吧,我一直在扯掉我剩下的头发……

基本上,我正在尝试开发一个非常简单的爱好操作系统。该操作系统将在 X86 平台上运行,使用 FAT12 软盘。在我的机器上测试它之前,我创建了一个磁盘映像以使用 Bochs 2.6.2 进行测试。

像往常一样,我将引导加载程序放在磁盘映像的引导扇区上,然后将内核映像(KERNEL.SYS)添加为常规 FAT12 文件。

引导加载程序旨在定位 KERNEL.SYS,将其加载到地址 1000h:0000,然后跳转到它。

但是,当我使用 Bochs 测试磁盘映像时,我得到了以下结果(从跳转到 07C0:0000 开始):

结果

据我所知,我知道 Bochs 要么不断重置(三重故障?),要么返回 0000:0000(未启用 A20)。内核开始时有一个无限循环(JMP $)(出于测试原因),所以我知道它没有被执行。我也知道 1000:000 不超过 1 MB,所以我不确定。

这是真正困扰我的部分:当我从 Bochs (32 MB) 获取内存转储时,我看到 KERNEL.SYS 在 0980:0000 或 0000:9800 加载。我知道我从来没有在那里装载过任何东西,所以这是怎么回事?

引导加载程序代码:

0 投票
2 回答
1188 浏览

assembly - 简单的引导加载程序和 bochs

我有一个用 AT&T 语法编写的简单引导加载程序。

我用yasm -f bin -o boot.bin loader.s它来编译它,然后用 bochs 来运行。

不过bochs说有no bootable device

所以,我有以下问题:

  1. 如何使用 AT&T 语法重写它(我必须使用哪种结构times 510-($-$$) db 0)
  2. 博克斯有什么问题?

谢谢!

PSBochs是在支持下编译的x86_64,但它不适bochs用于官方 arch repo。

0 投票
1 回答
1005 浏览

macos - 在 Mac OS X 山狮上制作 bochs 时出现的问题

我已经在 Mac 上安装了 X11:

当我在终端输入一些代码时:

./configure --with-x11

制作

之后,就会出现一些问题:

你能告诉我如何解决这些问题吗?

0 投票
2 回答
132 浏览

assembly - 两字节操作系统不是我想要的

我从一个示例创建了一个软盘启动映像,它应该:

  1. 禁用所有中断
  2. 重启

但是,一旦我用 bochs 启动它,它会消耗 100% 的 CPU,直到我杀死它。

这是软盘图像:

拆解图:

Bochs 输出(pastebin)。

bochsrc.txt:

我以这种方式运行 bochs:

但是,一旦我用 bochs 启动它,它会消耗 100% 的 CPU,直到我杀死它。

Bochs 版本:2.4.6-4,在 ubuntu 12.04 i686 上运行。

我究竟做错了什么?

0 投票
0 回答
27 浏览

kernel - 为什么寄存器与指令不匹配?

我使用 bochs 的调试功能在每条指令后检查寄存器。但我发现寄存器与指令不匹配。y mov sp, 0100h sp 寄存器仍为 0。

斧头寄存器更改为 0 但应用程序正确。为什么?

0 投票
1 回答
264 浏览

operating-system - Windows 7(32 位)中的 PartCopy 或 bochs 配置失败

我正在尝试在此链接之后创建一个引导加载程序,我所做的事情是

  1. 根据给定创建一个 vfd 并对其进行格式化。

  2. 使用过的部分副本partcopy Boot1.bin 0 200 -f0

  3. 然后为 bochs 模拟器创建了一个配置文件。

bochs模拟器加载它时,当我提供配置文件时,模拟器停止说panic

而且我还想知道如何知道 partcopy 是否已将数据复制到软盘中。当我尝试在复制后打开软盘驱动器时,它显示要使用的格式(我认为问题只是部分复制)。

我该如何解决?

0 投票
1 回答
1202 浏览

assembly - 带有 BOCHS 插件的 IDA PRO 在到达 main 之前失败

我想在 IDA Pro 中使用插件 Bochs 调试程序。我有 IDA Pro 6.4 和 Bochs 2.5.1。

对于我所有的可执行文件,当我启动 Bochs(使用 PE 模式)时,我会执行以下操作:

在 E0001820 中,程序跳转到函数 loc_E000182C。当程序在 ptr unk_E0001A50 附近执行时,它会停止并显示以下消息:

它永远不会出现在我的代码中。我尝试了使用 Visual C++ 2010 制作的各种程序。

0 投票
0 回答
1367 浏览

linux - 使用 bochs 调用 printf() 时 Pintos 内核出现三重错误

我刚刚开始使用 Pintos 项目,在运行 Ubuntu 的家用计算机上工作。

我能够从src/threads/目录编译项目,并且初始测试pintos run alarm-multiple似乎工作正常(注意它默认运行 qemu):

然而,当我用 bochs 模拟器运行这个测试时,我一点击就感到恐慌printf(),这似乎是首先从read_command_line().

品脱:

pintos-gdb:

正如你所看到的,只要我c在 gdb 中运行(继续)命令,pintos 就会在调用read_command_line()时崩溃printf()

我认为我没有对基线 Pintos 代码进行任何重大更改。什么可能让 bochs 在这个函数调用中感到恐慌?用 qemu 运行同样的测试似乎没有这个问题。

0 投票
1 回答
90 浏览

c++ - 在eclipse中创建bochs项目

我正在尝试在我的研究生课程项目中使用 bochs 的 cpu。我想在 Eclipse 中创建它的一个项目,这样我就可以修改它并编译它,还可以查看错误...

我有源代码,我使用 Visual Studio 的 nmake 来构建、编译它。但问题是它没有向我报告错误,知道错误发生与否的唯一方法是等到 nmake 结束并查看是否创建了 .exe 文件。在那之后,发现错误的过程令人头疼。

所以我正在尝试使用 ubuntu 操作系统并使用 eclipse。任何人都知道如何在此为 bochs 创建一个项目?

另外更重要的是我可以学习bochs cpu代码的教程。因为官网的教程没有用。

0 投票
2 回答
12921 浏览

assembly - nasm - 错误:行首需要标签或指令

您好,我对组装非常陌生(今天才开始),并且在完全按照本教程中所说的操作时遇到了这个问题。我用这个文本制作了一个 asm 文件:

在我的带有 asm 文件的文件夹中,我有一个 nasm 和 nasmpath 的副本,我还有一个 bochs 的快捷方式。我想要做的是将其转换为 bin 文件。当我输入这个命令时:

我收到这个错误

我想知道这是一个糟糕的教程还是我输入错误。我也想知道“标签或说明”是什么意思。