Noyau d'OS supérieur à 512 octets -> plantage :( [Résolu]

Messages postés
42
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
28 avril 2010
- - Dernière réponse : Bub325
Messages postés
42
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
42
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
28 avril 2010
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bub325
Messages postés
44
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
15 avril 2005
0
Merci
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 !
Commenter la réponse de SystemOfAXav