bonjour, je ne sais pas si je suis sur le bon forum mais vue que le sujet traite un bootloader en assembleur j'ai décidé de poster le message ici.
Alors voila, je me suis tapé pas mal de lecture sur le fonctionnement d'un bootloader, CPU, Bios.
Je ne connait pas beaucoup l'assembleur avec NASM j'ai donc suivi un tuto pour créer un simple bootloader et de le faire démarrer au démarrage du PC.
http://a.michelizza.free.fr/pmwiki.p...utoOS.Bootsect
J'ai donc copié la source que j'ai enregistré en .asm et que j'ai ensuite compilé avec nasm en utilisant la commande suivante comme expliqué sur le tuto :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 [BITS 16] ; indique a nasm que l'on travaille en 16 bits [ORG 0x0] ; initialisation des segments en 0x07C00 mov ax, 0x07C0 mov ds, ax mov es, ax mov ax, 0x8000 mov ss, ax mov sp, 0xf000 ; stack de 0x8F000 -> 0x80000 ; affiche un msg mov si, msgDebut call afficher end: jmp end ;--- Variables --- msgDebut db "Hello world !", 13, 10, 0 ;----------------- ;--------------------------------------------------------- ; Synopsis: Affiche une chaine de caracteres se terminant par 0x0 ; Entree: DS:SI -> pointe sur la chaine a afficher ;--------------------------------------------------------- afficher: push ax push bx .debut: lodsb ; ds:si -> al cmp al, 0 ; fin chaine ? jz .fin mov ah, 0x0E ; appel au service 0x0e, int 0x10 du bios mov bx, 0x07 ; bx -> attribut, al -> caractere ascii int 0x10 jmp .debut .fin: pop bx pop ax ret ;--- NOP jusqu'a 510 --- times 510-($-$$) db 144 dw 0xAA55
nasm -f bin -o bootsect bootsect.asm
Puis, pour tester, j'ai installé l'émulateur bochs (version installable pour windows). Voici comment je procède pour tester le bootloader :
J'ouvre bochs, dans la fenêtre "bochs start menu" je double clique sur l'onglet "disk & boot" et je sélectionne un floppy 3.5" 1.44M et je sélectionne le bootloader préalablement compilé. Je clique sur start et j'ai l'erreur suivante :
No bootable device.
si une personne à une idée du problème, merci d'avance.
Partager