我有一个用AT&T语法编写的简单引导加载程序。
[bits 16]
[org 0x7c00]
jmp $
times 510-($-$$) db 0
dw 0xaa55我使用yasm -f bin -o boot.bin loader.s编译它,使用bochs运行它。
dd if=boot.bin bs=512 of=floppy.img
bochs -q但是bochs说有no bootable device。
因此,我有以下问题:
times 510-($-$$) db 0)构造)谢谢!
P.S. Bochs是在x86_64支持下编译的,但它不适用于官方arch回购中的bochs。
发布于 2015-05-22 12:17:30
我建议您坚持使用Intel语法,因为它通常比AT&T更具可读性,对于它们之间的一些基本差异,您可以检查这和这。
在Ubuntu上,bochs需要bochs-x和bochs-sdl才能无错误地运行。然后,您应该能够从软盘映像启动:
bochs -q 'display_library: sdl' 'boot:a' 'floppya: 1_44=floppy.img, status=inserted'另一种选择是使用qemu而不是bochs
qemu -fda floppy.img发布于 2013-08-09 10:22:50
如果你不懂AT&T语法,我想不出你为什么要写AT&T语法!我觉得“时代”这句话应该是..。
.org 0x7DFE
.word 0xAA55
Bochs可能正在寻找一张完整的1.44万张软盘图像。
https://stackoverflow.com/questions/18140198
复制相似问题