繁体   English   中英

简单的引导程序和boch

[英]Simple bootloader and bochs

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

[bits 16]
[org   0x7c00]
jmp   $
times 510-($-$$) db 0
dw    0xaa55

我使用yasm -f bin -o boot.bin loader.s进行编译,然后运行。

dd if=boot.bin bs=512 of=floppy.img
bochs -q

但是bochs说, no bootable device

因此,我有以下问题:

  1. 如何使用AT&T语法(必须改用times 510-($-$$) db 0)来重写它?
  2. Boch有什么问题?

谢谢!

PS Bochs使用x86_64支持进行编译,但不适用于官方bochs中的boch。

我无法想象如果您不知道AT&T语法,为什么还要尝试编写AT&T语法! 我认为“时代”线是...

 .org 0x7DFE .word 0xAA55 

Bochs可能正在寻找整个1.44M软盘映像。

我建议您坚持使用Intel语法,因为它通常比AT&T更易读。 对于它们之间的一些基本区别,您可以检查thisthis

在Ubuntu上,bochs需要bochs-xbochs-sdl才能正常运行。 然后,您应该能够使用以下命令从软盘映像启动:

bochs -q 'display_library: sdl' 'boot:a' 'floppya: 1_44=floppy.img, status=inserted'

另一种选择是使用qemu代替bochs

qemu -fda floppy.img

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM