[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