有人能够在Snow Leopard下编译Bochs模拟器.Leopard对我来说很好,但在Snow Leopard下我遇到了很多与Carbon库有关的问题......
好的,还有一些信息是请求.
这里的错误......在编写bochs的碳基gui时失败了:
g++ -c -I.. -I./.. -I../iodev -I./../iodev -I../instrument/stubs -I./../instrument/stubs -pipe -O3 -isysroot /Developer/SDKs/MacOSX10.6.sdk -framework Carbon -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays -fpascal-strings -fno-common -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES carbon.cc -o carbon.o
carbon.cc:154: warning: non-local variable ‘<anonymous enum> last_screen_state’ uses anonymous type
carbon.cc:154: warning: non-local variable ‘<anonymous enum> screen_state’ uses anonymous type
carbon.cc:163: error: ‘CIconHandle’ does not name a type
carbon.cc: In function …Run Code Online (Sandbox Code Playgroud) 我想使用Bochs作为8086模拟器.是否有捷径可寻?我想要的是像emu8086(http://www.emu8086.com/).
我是汇编语言的绿手.这些天我用bochs来模拟虚拟软盘的启动过程.但我不知道的一件事CS是系统初始化时寄存器值是什么.
;; init registers
org 0x7c00
BaseOfStack equ 0x7c00
Label_Start:
mov ax, cs
mov ds, ax
mov es, ax
mov ss, ax
mov sp, BaseOfStack
;; clear screen
mov ax, 0600h
mov bx, 0700h
mov cx, 0
mov dx, 0184h
int 10h
Run Code Online (Sandbox Code Playgroud)
上面的代码只是其中的一部分.ORG执行命令时,指令的CS寄存器值是多少mov ax, cs.它与0x7c00相同吗?谢谢.
下面是bochsrc配置:
romimage: file="$BXSHARE/BIOS-bochs-latest"
vgaromimage: file="$BXSHARE/VGABIOS-lgpl-latest"
boot: floppy
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="myboot.img", status=inserted
pci: enabled=1, chipset=i440fx
vga: extension=vbe, update_freq=15
cpu: ips=15000000
log: bochsout.txt
mouse: enabled=0 …Run Code Online (Sandbox Code Playgroud) 我有一个简单的程序.它必须从硬盘驱动器(而不是mbr)读取第一个扇区,并将其写入0扇区(mbr).但它不起作用.我认为它与错误的DAP有关.谢谢.
[bits 16]
[org 0x7c00]
;clear screen
start:
mov ax, 0x3
int 0x10
;reset the hard drive
xor ah, ah
mov dl, 0x80
int 0x13
jnz error
;read the second sector
mov si, DAP
mov ah, 0x42
int 0x13
mov si, data
call print_string
jmp $
DAP:
db 0x10 ;size of DAP
db 0x0 ;zero
db 0x1 ;number of sectors to read
db 0x0 ;zero
;point to memory
dw 0x0 ;offset
dw 0x0 ;segment
dq 0x1 ;disk address
DAP2:
db …Run Code Online (Sandbox Code Playgroud) 我有IDA PRO 6.1 - (我无法安装最新版本)
我试图用bochs调试器或windgb调试x64应用程序.
我做了以下事情:
确保ida.cfg中Windows调试器的默认路径是:
DBGTOOLS = "C:\\Program Files (x86)\\Windows Kits\\8.1\\Debuggers\\x86\\";
Run Code Online (Sandbox Code Playgroud)我无法使用任何调试器使用x64,我希望对配置调试器的正确方法有一点指导.
我无法调试任何x64应用程序.当我将调试器设置为bochs时,它开始运行,然后遇到以下错误:

当我尝试使用windgb时,它会一直报告:
无法初始化WinDgb引擎...有错误:找不到指定的过程.(000007F)...
当我点击OK我得到:
"调试器插件无法加载文件.请验证参数是否有效."
什么是正确的参数?
我在调试本地应用程序时是否有连接字符串.在IDA帮助文件中,它表示将Connection字符串留空以供本地应用程序使用,但即使我选择x64 dbgsrv.exe并设置默认连接字符串也不起作用.
我正在学习汇编语言.我写了一个简单的bootloader.测试后,它没有用.这是我的代码:
[bits 16]
[org 0x7c00]
jmp start
data:
wolf_wel_msg db 'Welcome to Bootloader!!!',0x0D,0x0A,0
wolf_kernel_load db 'Loading kernel....',0x0D,0x0A,0
wolf_error_msg db 'Kernel.bin not found!',0x0D,0x0A,0
wolf_error_msg1 db 'Press any key to restart..',0
start:
mov si, wolf_wel_msg
call wolf_print
mov si, wolf_kernel_load
call wolf_print
pushf
stc
mov ah,00
mov dl,00
int 13h
read_sector:
mov ax, 0x0
mov es, ax
xor bx, bx
mov ah, 02
mov al, 01
mov ch, 01
mov cl, 02
mov dh, 00
mov dl, 00
int 13h
jc wolf_error …Run Code Online (Sandbox Code Playgroud) 我想在运行bochsdbg时在0x7c00处设置断点.
我不想每次都自己输入这两个命令.
b 0x7c00
c
Run Code Online (Sandbox Code Playgroud)
如何在bochsrc.txt中执行此操作?
谢谢〜
Prototype mismatch: sub main::SIGVTALRM () vs none at /home/abhijay/pintos-os/pintos/src/utils/pintos line 934.
Constant subroutine SIGVTALRM redefined at /home/abhijay/pintos-os/pintos/src/utils/pintos line 926.
warning: can't find squish-pty, so terminal input will fail
bochs -q
========================================================================
Bochs x86 Emulator 2.4.6
Build from CVS snapshot, on February 22, 2011
Compiled at Jun 8 2013, 05:16:04
========================================================================
00000000000i[ ] LTDL_LIBRARY_PATH not set. using compile time default '/usr/lib/bochs/plugins'
00000000000i[ ] BXSHARE not set. using compile time default '/usr/share/bochs'
00000000000i[ ] reading configuration from bochsrc.txt
00000000000e[ ] user_shortcut: old-style …Run Code Online (Sandbox Code Playgroud) 在我的引导程序的第二阶段,我试图将一些虚拟软盘上的扇区加载到bochs的内存中,但是在调用时int 0x13,例程就不会返回.
我相信我的第二阶段的相关代码是:
bootsys_start:
mov %cs, %ax
mov %ax, %ds
/*
* Remap IRQs. Interrupts have been disabled in the
* bootloader already.
*/
mov i8259A_ICW1($i8259A_IC4), %al
out %al, i8259A_ICW1_ADDR($i8259A_MASTER)
out %al, i8259A_ICW1_ADDR($i8259A_SLAVE)
mov i8259A_ICW2($USER_INT_START), %al
out %al, i8259A_ICW2_ADDR($i8259A_MASTER)
mov i8259A_ICW2($USER_INT_START + 8), %al
out %al, i8259A_ICW2_ADDR($i8259A_SLAVE)
mov i8259A_ICW3($0x4), %al
out %al, i8259A_ICW3_ADDR($i8259A_MASTER)
mov i8259A_ICW3($0x2), %al
out %al, i8259A_ICW3_ADDR($i8259A_SLAVE)
mov i8259A_ICW4($i8259A_uPM & i8259A_x86), %al
out %al, i8259A_ICW4_ADDR($i8259A_MASTER)
out %al, i8259A_ICW4_ADDR($i8259A_SLAVE)
call mm_detect
/* Load the kernel …Run Code Online (Sandbox Code Playgroud) 最近我开始阅读这本关于操作系统开发的“书”(https://littleosbook.github.io/),我发现它很棒,但是我在尝试在 bochs 中启动我的映像时遇到了一个问题。
在某些时候,有关在Bochs中运行操作系统的指南告诉我为模拟器创建一个配置文件。我将每个选项设置为我读到的内容。
但是当我运行以下命令时,
bochs -f bochsrc.txt -q
它说:
显示库“sdl”不可用
配置文件中的相关行非常明显:
显示库:sdl
我不知道出了什么问题。我安装了libsdl和libsdl2.0,但仍然无法工作。
我的工作环境包括 Ubuntu 20.04 和 Bochs 2.6.11。
有人遇到过这个问题吗?解决办法是什么?