问题标签 [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 - 调试bochs中引导扇区的int 13h 02h函数
我想调试一个引导扇区,它会读取软盘。我在 bochs 中调试它并想检查它是读取成功还是失败。我知道AH寄存器可以返回代码,但我也想看看它读到了什么,所以我想检查物理内存中的es:bx堆栈,但它都传播了0x00。为什么?
此代码由 as86 编写并由 ld86 链接。我使用 bochs 磁盘映像创建工具创建了软盘映像,并使用命令创建dd bs=32 if=boot of=/dev/fd0 skip=1
了这个可启动的软盘映像。
我注意到标志重新返回了 0x00000046,因此 CF 为 0,表明该操作没有错误。但是ax寄存器是0x0201。啊寄存器是 0x02 是错误码。我不知道为什么?
以下是我的 bochs 文件:
这是代码:
as86写的代码,我在第二个扇区的开头加了一个字。
我将调试信息粘贴到 bochs 中。
c - 在 C 函数调用中传递 char 字符串时,Bochs (2.4.6)/GRUB (0.97) “错误 13 无效或不受支持的可执行格式”
我正在尝试遵循“关于操作系统开发的小书”并做一个我正在启动的小型操作系统。
但是我遇到了一个我无法解决或解释的问题。简而言之,当传递一个 char 字符串(在 C 中)时,内核启动正常并且在执行时工作;
但是当我尝试直接调用函数时,使用函数调用中定义的 char 字符串,GRUB 不会启动我的内核;
然后我得到
编译和链接似乎很顺利,没有任何警告或错误。
我错过了什么?或者我做错了什么?
主程序
加载器.s
链接.ld
bochsrc.txt
生成文件
x86 - 在 GDT/LDT/IDT 输入上设置断点
我正在研究 x86 架构,我想在全局描述符表条目或解释描述符表条目或 ldt 上设置一个断点 - 这意味着,例如,每次从 idt/gdt/ldt 读取特定条目时将触发断点。
我正在尝试使用 bochs x86 模拟器来模拟这种情况,但是我很难做到。
谢谢。
windbg - 将 Windbg 连接到 Bochs 虚拟机
我想将windbg连接到Bochs虚拟机以调试操作系统,但是当操作系统启动操作开始时windbg终止(没有任何错误消息。)
请考虑我已经通过 com 端口将 windbg 连接到 Bochs。
operating-system - Cygwin 上的 Bochs 编译错误
我正在尝试按照G.1 部分的本教程在 Cygwin 上构建 Bochs。当我尝试输入命令时,./configure --enable-gdb-stub
我得到以下输出:
config.log
我的文件的违规行是:
我是操作系统工作的新手,这个问题让我困了几个小时。我不明白为什么-mno-cygwin
甚至被作为gcc
. 任何可能的解决方案?
assembly - BIOS INT13h AH=42h 带 BOCHS
我的引导加载程序代码有问题。我尝试使用 INT 13h AH=42h: "Extended Read Sectors From Drive" BIOS 3.0 版 (EDD-3.0) 和 BOCHS 将我的内核代码从硬盘映像复制到实模式下 0x100000 以上的内存位置。
当我使用 INT13 AH=41h BX=55AAh 函数检查是否支持 EDD-3.0 时,我得到了肯定的结果。我正在使用 BOCHS 2.6.8。
我使用这个 DAP。BOCHS 所做的是将 4 个块从磁盘复制到 FFFF:FFFF mod 100000h = FFEFh。我究竟做错了什么?我使用 Ralf Brown 的中断列表 ( http://www.ctyme.com/intr/rb-0708.htm ) 作为参考。
fedora - Fedora 22 上的 bochs:加载模块 libbx_usb_uhci.so 失败
我在全新安装的 Fedora 22 AMD64 系统上使用 BOCHS (Paket bochs-2.6.2-7.fc22.x86_64) 遇到了一些麻烦。我使用 yum 来获取 bochs,但如果我尝试开始模拟,我会收到一条错误消息:
我在网上搜索了一个没有成功的解决方案。
assembly - Debug Boot Sector in Bochs how jmpi works and cpu calculate the instruction address
I encounter several problems when I debug boot sector in bochs.
When debug a boot sector in bochs, bochs debugger first pause in the
Q1: Is this instruction jmpf 0xf000:e05b
the jump instruction in this last 16 byte memory?
Q2: What instruction in address 0xf000:e05b
?
Then we want to let code stop at address 0x7c00
These lines of code are generated by jmpi go,#0x7c00 go: move ax,cx
.
Q3: instruction jmpi
is translated into jmpf
and machine code ea
, is it right?
Q4: 0x0005 is the offset of label go. When does this offset computated? At link time?
ea0500c007
is the machine code of jmpf. ea is instruction, 07c0:0005 is the operand (because x86 is litten endian). This code is 5 bytes.
Q5: How CPU read this instruction and how PC calculate the size of this instruction? Does CPU encounter ea then read next 4 bytes as its operand?
linux - 有谁知道 LD_PRELOAD 变量在哪里,在哪个文件中?
正如标题所说,我不知道这个变量在哪里。我只知道如何通过键入来更改它:
$ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libXpm.so.4
那么是否可以在其文件中更改它?