Bub325
Messages postés41Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention28 avril 2010
-
1 avril 2005 à 23:27
Bub325
Messages postés41Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention28 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é ?
SystemOfAXav
Messages postés44Date d'inscriptiondimanche 2 mai 2004StatutMembreDernière intervention15 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)