Assembly 简单的bootloader和bochs
我有一个用AT&T语法编写的简单引导程序Assembly 简单的bootloader和bochs,assembly,bootloader,att,bochs,yasm,Assembly,Bootloader,Att,Bochs,Yasm,我有一个用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说,没有可引导设备 因此,我有以下问题: 我如何用AT&T语法重写它(我必须使用乘以510-($-$$)db 0) 博克
[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
说,没有可引导设备
因此,我有以下问题:
乘以510-($-$$)db 0)
p.S.
Bochs
是使用x86_64
支持编译的,但它不适用于官方arch回购协议中的Bochs
。如果你不知道AT&t语法,我无法想象你为什么要尝试编写AT&t语法!我想《泰晤士报》的台词应该是。。。
Bochs可能正在寻找一个完整的1.44M软盘映像。我建议您坚持使用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
Bochs可能正在寻找一个完整的1.44M软盘映像-不,您可以向Bochs提供较小的文件。
qemu -fda floppy.img