Question

J'ai le problème suivant: Je travaille avec MSNA et la construction d'une compilation native et sur la façon suivante:

nasm -f bin source -o out

Je reçois mon programme natif pour x86.

Et maintenant, le plus intéressant, comment puis-je le rendre bootable puis le tester?

Je pense qu'il ya 3 façons de rendre amorçable (mais pour moi, tout ce qu'ils ont échoué :()

  • à l'aide de l'utilitaire mkbt (ou un autre doux qui est similaire) pour écrire sur une disquette
  • construction de l'image ISO, avec l'édition secteur de démarrage dans ce
  • secteur de mémoire d'écriture manuelle à carte SD USB / ou un autre conducteur

En ce qui concerne le test, en tout temps le PC est réinitialisé est très mauvais, il est donc préférable d'utiliser un soft OS virtuel comme Vbox, VMWare etc ..

Alors je VBox pour cela. Pour la construction de l'ISO - je CDBurnerXP

.

Avec CDBurner j'ai optionné secteur de démarrage pour mon programme natif, puis choisissez ISO nouvelle dans Vbox comme disque à partir duquel sera mon démarrage du programme.

Le résultat est toujours vide écran, aucune erreur ne montrent, que rien ...

Je pense que j'ai beaucoup d'erreurs ...

Utilisation mkbt, je ne peux pas écrire pour pilote usb .... Je n'ai pas flooppy maintenant, donc je ne suis pas en mesure de l'image d'écriture sur disquette, mkbt ne peut pas écrire usb ...: (

Que dois-je tort?

Comment puis-je résoudre mon problème?

Était-ce utile?

La solution

Il suffit de faire ceci:
bin de nasm -o boot.bin boot.asm
qemu ordre -boot = a -fda boot.bin

Et vous devriez voir le message. Pour d'autres émulateurs vous voulez pad l'image 1474560 octets.

boot.asm:

        BITS 16
        ORG 0
        jmp 0x07c0:start

start:
        mov ax, cs
        mov ds, ax

        mov si, msg
        call print_string

hang:
        jmp hang

print_string:
        cld
        lodsb
        or al, al
        jz .done
        mov ah, 0x0E
        int 0x10
        jmp print_string
.done:
        ret

msg:    db 'Hello World!', 13, 10, 0

        times 510-($-$$) db 0
        dw 0xAA55
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top