2010-09-14 25 views
4

Je vais écrire et tester un bootloader. Pour ce faire, j'ai l'intention de copier le bootloader sur un fichier d'image de disquette et de le monter dans une machine virtuelle.Où stocker le chargeur de démarrage sur une image de disquette?

Cependant, je ne sais pas où placer le code machine du bootloader. Est-ce que ça vient d'être déversé dans les premiers octets du fichier?

Répondre

2

Le secteur de démarrage de la disquette a été le premier secteur. Si vous parlez d'une image de disquette brute (1440 Ko), ce devrait être les 512 premiers octets du fichier image. De mémoire, cela est chargé par le BIOS en 7c00: 0000 (mode réel), puis saute à cette adresse.

Les disquettes de démarrage DOS disposaient d'une instruction JMP de 3 octets pour sauter par-dessus le bloc de paramètres de disque (DPB), qui détaillait les attributs du disque. Mais, si vous avez le contrôle total du disque et de votre code de démarrage, je ne pense pas que vous ayez à suivre cette convention. Je ne me souviens d'aucun BIOS vérifiant ce qui a été chargé pour la validité (bien que ce soit long il ya longtemps).

+0

Parfait. C'est exactement ce que je voulais savoir. –

0

été un très long moment, mais si je me souviens dans DOS, il a été stocké dans le MBR. Je crois que son toujours le même aujourd'hui

http://en.wikipedia.org/wiki/Master_boot_record

+0

Cela ne répond pas vraiment à ma question, cependant. Où ** dans le fichier IMG ** est-il stocké? –