Qu'est ce que le DOS ?

Fermé
CyberP1708 - 23 août 2005 à 09:17
 CyberP1708 - 23 août 2005 à 10:06
Bonjour,

Je voudrais savoir ce qu'est réellement le DOS...

En effet, j'ai créé une disquette de boot qui affiche "Hello World!", le tout en assembleur (donc ce qui est sur la disquette n'est QUE le programme, rien d'autre n'est inclus).

Et pour afficher "Hello World!" j'utilise une interruption (une fonction en quelques sortes) "du DOS".

Ca m'indigne beaucoup parce que je pensais que le DOS était un système d'exploitation... (c'est ce qu'il y a écrit sur le site d'ailleurs) Mais si je boote à partir de la disquette il ne peut pas y avoir de système d'exploitation lancé !

Merci d'avance

4 réponses

dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 755
23 août 2005 à 09:29
"Mais si je boote à partir de la disquette il ne peut pas y avoir de système d'exploitation lancé ! "
-> Il ya des systemes d'exploitation qui tiennent sur 1 disquette :)
-> On peut démarrer sur une disquette a condition que certains fichiers soient présents sur la disquette: il n'y a vraiment rien d'autre que ton prog sur cette disquette?

a+
dje-dje
0
Utilisateur anonyme
23 août 2005 à 09:31
Bonjour,

Il y a quoi sur ta disquette à part ton programme ? Qu'est ce qui la fait booter ?

Le DOS est bel et bien un OS... :)
0
Voici le contenu de la disquette :

jmp debut
db "BOOT", 0, 0, 0, 0
dw 512
db 1
dw 1
db 2
dw 224
dw 2880
db 0xF0
dw 9
dw 18
dw 2
dw 0
dw 0
db 0
db 0
db 0x29

debut:
cli
mov ax, 0x6000
mov ss, ax
mov ax, 0x07C0
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov sp, 0xFFFF
mov ax, 0012h
int 10h
sti

mov cx, 12
boucle:
mov di, 12
sub di, cx
mov ah, 0Eh
mov al, [helloworld + di]
mov bh, 0
mov bl, 0FFh
int 10h
loop boucle
infini:
jmp infini

helloworld db "Hello World!"

times 510 - ($-$$) db 0

db 0x55
db 0xAA


Une disquette est bootable si les octets 511 et 512 contiennent un code spécial (55AA en hexa, ce sont les deux dernières lignes du code que j'ai mis)
Il n'y a pas besoin spécialement de fichiers supplémentaires : pour une disquette de démarrage c'est le premier segment (là où ça boote) qui démarre les autres fichiers, dans mon cas tout se fait directement dans le premier segment
La preuve c'est que ça marche et que windows me dit que 0 octets sont utilisés sur la disquette
0
Désolé, il semblerait que j'ai fait une erreur : ce que j'utilise c'est en fait une interruption du BIOS (il y a les deux)
Je viens de trouver un site disant que c'est impossible que ce soit du DOS (justement puisqu'il n'est pas là) et en approfondissant j'ai trouvé que ce que j'utilisais n'était pas du DOS

Merci quand même
0