[SOS] problème de pile
draconux
draconux at gmail.com
Sam 3 Déc 15:52:29 CET 2005
Bonjour à tous
tout d'abord merci à l'equipe SOS pour leurs articles, pour SOS et pour la
licence de SOS :)
Je vous ecrit car j ai une petite question :
(ps : j utilise le code souce de l'article 1)
comment passer des paramètres à la fonction cmain en utilisant le bootloader
bootsect.s (dossier extras) ?
==============================================================
En principe si on fait un push juste après l'initialisation de la pile, on
devrait le récupéré comme paramètre dans la fonction cmain. ( en fait comme
dans bootstrap avec le nombre magic de grub)
Mais le problème c'est que ca ne marche pas ! je recupère le nombre 0
quelque soit le nombre que je met dans la pile
problème de pile apres avoir charger le noyau cmain ???
==================================================
Pour contourner le problème j'essaye de le récupéré avec un pop dans le
cmain (en fesant appel a de l'assembleur inline)
=> même problème le nombre que je recupère apres un pop est toujour e nombre
0
dans bootsect.s je fait :
pushl $20
ljmp $0x8, $sos_main
dans main.c fonction sos_main
asm volatile( "popl %%eax; \
movl %%eax,%0;"
:"=r" (magic)
:\
:"%eax");
Et j'obtient magic=0 au lieu de 20
Pourtant on utilise la même pile lors du push dans bootsect.s et le pop dans
main.c ...
merci :)
-------------- section suivante --------------
Une pièce jointe HTML a été enlevée...
URL: http://the-doors.enix.org/pipermail/sos/attachments/20051203/cfc00d48/attachment.htm
Plus d'informations sur la liste de diffusion Sos