so para complementar, aqui vai um scriptzinho q eu uso para criar o bootloader e executa-lo:
nasm bootloader.asm -o bootloader.bin # monta o bootloader com o nasm gerando o bootloader.bin com 512 bytes
dd if=/dev/zero of=floppy.img bs=512 count=2880 # cria um arquivo em branco (todos os bits zerados) para servir como imagem do diquete
mkdosfs floppy.img # formata a imagem e cria o sistema de arquivos
bootsector bootloader.bin floppy.img # chama um programa pra escrever o bootloder nos primeiros 512 bytes da imagem
bochs -qf bochsrc # chama o bochs passando seu arquivo de configuracao como parametro
eu estou utilizando o nasm como assembler e o bochs como emulador
o programa pra gravar eu escrevi em C, é um programa simplesinho q so le o bootloader e o grava no inicio da imagem
tem q configurar o bochs para apontar para a imagem gerada
pro sistema de arquivos continuar "funcionando", nao pode sobrescrever ele, q é aquela parte do inicio com os dados, ele vai ser necessario pra carregar os arquivos armazenados, como o kernel, a nao ser q vc escreva seu proprio sistema arquivos ou algo do tipo. Mas pra fazer apenas um hello world vc pode tratar o bootsector todo como seu e fazer oq bem entender com ele..