Bonjour alors voilà :
je change de système d'exploitation très souvent et je ne trouve pas de quoi me satisfaire. Alors j'ai eu l'idée de créer mon propre système d'exploitation.
Bon je ne vais pas vous raconter ma vie mais pour faire court : je me suis documenté (j'ai trouvé des choses intéressantes, de plus je connais le c et cpp et j'ai des notions (très minimes) de asm).
Mon problème (enfin :p ) :
j'ai recopié le code suivant dans un fichier bootsect.asm :
Je l'ai compilé grâce à la fonction : nasm -f bin -o bootsect bootsect.asm
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
Créer un fichier .img avec ce secteur de boot :bfi -v -f=test.img -b=bootsect
Mais lors du démarrage de la disquette (sur virtual box) le boot plante et ne m'affiche même pas de message d'erreur.
Quelqu'un peut m'aider à réparer cette erreur ?
P.S. :
si quelqu'un connaît bien ce qui concerne la création de noyau de systèmes et qui serait prêt à m'offrir son aide je suis preneur.
Merci !
Partager