Soit la fonction suivante (est_premier) qui renvoie 1 si le nombre passé en argument est
premier, 0 sinon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 int est_premier(int nb)
{
   int i;
   for (i=2;i<nb;i++)
   {
      if (nb % i ==0) /* % est le reste de la division entière */
       return 0;
   }
return 1;
}
int main()
{
  int cpt;
  for (cpt=0;cpt<100;cpt++)
  { 
    if (est_premier(cpt)==1)
     {
       print("%x\n",cpt);
 
     }
  }
return(0);
}
comment Compléter en langage d’assemblage MIPS le programme principal (main)
Vous
j'utiliser $5 pour 100, $6 pour cpt et $7 pour les valeurs intermédiaires.
comment ecrire en langage d’assemblage MIPS le corps de la fonction est_premier. Vous utiliserez $5 pour i, $6 pour nb et $7 pour les valeurs intermédiaires. On rappelle que l’instruction div $i, $j fournit le reste de la division entière de $i par $j dans le registre HI.
b) Ecrire en langage d’assemblage MIPS le prologue de la fonction est_premier.
c) Ecrire en langage d’assemblage MIPS l’épilogue de la fonction est_premier.
d) Représenter la pile après l’exécution du prologue de est_premier.
Quelle taille minimale en octet faut-il réserver pour le segment de pile ?