Noyau d'OS supérieur à 512 octets -> plantage :(

Résolu
Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010 - 1 avril 2005 à 23:27
Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010 - 2 avril 2005 à 21:11
Bonjour,
J'ai un problème avec logiciel que j'essaye de faire, j'ai un bootloader qui se lance au boot du PC (sur une disquette), qui charge en mémoire le programme se trouvant à partir du secteur 2 de la disquette, passe en mode protégé et laisse la main au noyau.
Cela marche très bien tant que le noyau est inférieur à 512 octets, mais si il prend plus d'un secteur mon programme plante.
Quelqu'un saurait il comment remédier à sa sachant que j'utilise le loader suivant:
http://inferno.cs.univ-paris8.fr/~am/tutorial/os/tutorial04.html (bootsect.asm)
et que je change la valeur de KSIZE suivant le nombre de secteur utilisé ?

Merci pour vos réponses,

Bub325
Le codeur pas comme tout le monde

2 réponses

Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010
2 avril 2005 à 21:11
Merci, mais en faite mon problème venais du fait que mon compilateur C avais du mal avec les multiplications.

Merci pour ta réponse !

Bub325
Le codeur pas comme tout le monde
SystemOfAXav Messages postés 44 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 15 avril 2005
2 avril 2005 à 14:03
Le problème survient pendant la copie du noyau ou pendant son execution.?

Si c'est pendant, assure toi que les secteurs suivants de ton noyau son bien chargés (et au bon endroit).

Tu peux aussi essayer de localiser l'erreur en inserant un 'jmp $' dans
ton code, au alentour des 512 premiers octets (un peu avant) puis en le
décalant, tu verra la cause exacte de ton erreur. (ou au moins, tu
sauras après quelle instruction)



Sinon, je suppose que tu utilises Bochs, sert toi des fonctions de
débugage, pour suivre l'état de tes registres, et essaye de voir si il
n'y en a pas un qui prends d'un seul coup une valeur farfelue...
(surtout DS , CS et EIP)


Voila, voila...
@+ Syst3mOf@Xav

Voir Redmond et mourir !
Rejoignez-nous