Est ce que quelqu'un peut savoir la réponse ?

Résolu/Fermé
KhaledBenk Messages postés 4 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 24 mars 2013 - 23 mars 2013 à 04:00
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 23 mars 2013 à 21:12
Bonjour,
Est ce que quelqu'un peut m'aider a savoir l'implémentation de ce code en ASSEMBLEUR ?

***********
short a[10], b[[10];
...
...
for ( i = 0; i < 10; i++ )
b[i] = a[i] * 2;
}
***********
ensuite ce code la ?

***********
void main()
{
short x[10];
for (i = 0; i<10; i++)
x[i] += 1;
}
***********

Je voudrais savoir la conversion de chaque code entre les ** vers l'assembleur .

Merci bien d'avance


1 réponse

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
Modifié par nicocorico le 23/03/2013 à 21:17
Grosso-modo ça donne ça:
Dw A[10]   
Dw B[10]   

  Mov  ECX,18  
@Bcl:   
  Mov  DX,[Offset A + ECX]  
  Add  DX,DX  
  Mov  [Offset B + ECX],DX  
  Sub  ECX,02  
  Jns  @Bcl  

et pour le second ne connaissant pas le C je ne comprend pas ce que fait «x[i] += 1»?
Je crois qu'il s'agit simplement d'incrémenter chaque valeur, c'est ça?

Dw X[10] 

  Mov  ECX,09 
@Bcl:  
  Inc  Word ptr [Offset X + ECX*2] 
  Dec  ECX 
  Jns  @Bcl


Le chêne aussi était un gland, avant d'être un chêne
0