问题标签 [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.
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 加载。我知道我从来没有在那里装载过任何东西,所以这是怎么回事?
引导加载程序代码:
assembly - 简单的引导加载程序和 bochs
我有一个用 AT&T 语法编写的简单引导加载程序。
我用yasm -f bin -o boot.bin loader.s
它来编译它,然后用 bochs 来运行。
不过bochs
说有no bootable device
。
所以,我有以下问题:
- 如何使用 AT&T 语法重写它(我必须使用哪种结构
times 510-($-$$) db 0)
? - 博克斯有什么问题?
谢谢!
PSBochs
是在支持下编译的x86_64
,但它不适bochs
用于官方 arch repo。
macos - 在 Mac OS X 山狮上制作 bochs 时出现的问题
我已经在 Mac 上安装了 X11:
当我在终端输入一些代码时:
./configure --with-x11
制作
之后,就会出现一些问题:
你能告诉我如何解决这些问题吗?
kernel - 为什么寄存器与指令不匹配?
我使用 bochs 的调试功能在每条指令后检查寄存器。但我发现寄存器与指令不匹配。y mov sp, 0100h sp 寄存器仍为 0。
斧头寄存器更改为 0 但应用程序正确。为什么?
operating-system - Windows 7(32 位)中的 PartCopy 或 bochs 配置失败
我正在尝试在此链接之后创建一个引导加载程序,我所做的事情是
根据给定创建一个 vfd 并对其进行格式化。
使用过的部分副本
partcopy Boot1.bin 0 200 -f0
然后为 bochs 模拟器创建了一个配置文件。
当bochs
模拟器加载它时,当我提供配置文件时,模拟器停止说panic
而且我还想知道如何知道 partcopy 是否已将数据复制到软盘中。当我尝试在复制后打开软盘驱动器时,它显示要使用的格式(我认为问题只是部分复制)。
我该如何解决?
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 制作的各种程序。
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 运行同样的测试似乎没有这个问题。
c++ - 在eclipse中创建bochs项目
我正在尝试在我的研究生课程项目中使用 bochs 的 cpu。我想在 Eclipse 中创建它的一个项目,这样我就可以修改它并编译它,还可以查看错误...
我有源代码,我使用 Visual Studio 的 nmake 来构建、编译它。但问题是它没有向我报告错误,知道错误发生与否的唯一方法是等到 nmake 结束并查看是否创建了 .exe 文件。在那之后,发现错误的过程令人头疼。
所以我正在尝试使用 ubuntu 操作系统并使用 eclipse。任何人都知道如何在此为 bochs 创建一个项目?
另外更重要的是我可以学习bochs cpu代码的教程。因为官网的教程没有用。
assembly - nasm - 错误:行首需要标签或指令
您好,我对组装非常陌生(今天才开始),并且在完全按照本教程中所说的操作时遇到了这个问题。我用这个文本制作了一个 asm 文件:
在我的带有 asm 文件的文件夹中,我有一个 nasm 和 nasmpath 的副本,我还有一个 bochs 的快捷方式。我想要做的是将其转换为 bin 文件。当我输入这个命令时:
我收到这个错误
我想知道这是一个糟糕的教程还是我输入错误。我也想知道“标签或说明”是什么意思。