Bonjour à tous <br>
<br>
tout d'abord merci à l'equipe SOS pour leurs articles, pour SOS et pour la licence de SOS :)<br>
<br>
Je vous ecrit car j ai une petite question :<br>
(ps : j utilise le code souce de l'article 1)<br>
<br>
<div>comment passer des paramètres à la fonction cmain en utilisant le bootloader bootsect.s (dossier extras) ?<br>
==============================================================<br>
<br>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)<br>
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<br>
<br>problème de pile apres avoir charger le noyau cmain ???<br>
==================================================<br>
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)<br>
=> même problème le nombre que je recupère apres un pop est toujour e nombre 0<br>
<br>
dans bootsect.s je fait :<br>
pushl $20<br>
ljmp $0x8, $sos_main<br>
<br>
dans main.c fonction sos_main<br>
<br>
asm volatile( "popl %%eax; \<br>
movl %%eax,%0;" <br>
:"=r" (magic)<br>
:\<br>
:"%eax");<br>
<br>
Et j'obtient magic=0 au lieu de 20<br>
Pourtant on utilise la même pile lors du push dans bootsect.s et le pop dans main.c ...<br>
<br>
merci :)<br>
</div>