CODE ASSEMBLEUR

ndiaye_b Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
nicocorico Messages postés 799 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je voudrai avoir le code assembleur du code suivant avec des explications claires:
for(i=0;i<n;i++){
tab[i]=i++;
if(i==5)
break;
}
MERCI
A voir également:

1 réponse

nicocorico Messages postés 799 Date d'inscription   Statut Membre Dernière intervention   138
 
Hum, il faudrait déjà avoir un code d'origine clair!
Le fait de faire un test sur la variable de contrôle de la boucle n'a pas de sens!
Au final ce code fait pas grand chose, une boucle qui rempli un tableau avec les valeurs de 1 à 6 si je comprend bien le «Tab[i]= i++»... je connais rien au C mais il me semble que cette ligne est très ambigüe! Ce serait plutôt «Tab[i]= i+1».
En assembleur c'est tout aussi simple:
  Xor   ECX,ECX;   
@bcl:   
  Inc   ECX;   
  Mov   [Offset Tab + ECX-01],CL;   
  Cmp   ECX,05;   
  Jnz   @bcl;

En considérant que "Tab" est un tableau de byte.
Le chêne aussi était un gland, avant d'être un chêne
0