Tableau en asm
Fermé
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
-
27 janv. 2011 à 14:31
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 27 janv. 2011 à 23:54
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 27 janv. 2011 à 23:54
A voir également:
- Tableau en asm
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Identifier un tableau à partir d'une photo - Forum Graphisme
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse. - Forum Excel
7 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
27 janv. 2011 à 20:07
27 janv. 2011 à 20:07
Salut,
En asm pour quel type de processeur? Mips? x86? Arm? .....
En asm pour quel type de processeur? Mips? x86? Arm? .....
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
27 janv. 2011 à 20:14
27 janv. 2011 à 20:14
j'utilise le tasm dsl le processeur est Intel
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
27 janv. 2011 à 20:52
27 janv. 2011 à 20:52
Je ne connais pas la syntaxe de tasm mais si tu as déjà fait quelque chose je peux y jeter un coup d'oeil.
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
27 janv. 2011 à 22:04
27 janv. 2011 à 22:04
nn je n'ai pas encore commencé je suis débutante pouvez vous au moins me donnez une idée stp
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
27 janv. 2011 à 22:13
27 janv. 2011 à 22:13
Tu saurais le faire pour une comparaison de deux tableaux à 1 dimensions?
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
27 janv. 2011 à 22:17
27 janv. 2011 à 22:17
nn
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
27 janv. 2011 à 23:54
27 janv. 2011 à 23:54
Pour comparer deux chaines voilà un exemple.
Dans esi on a le pointeur vers la première chaine et dans edi le pointeur vers la deuxième.
Donc ça c'est pour des chaines sous forme de tableau à une dimension.
Maintenant pour un tableau en deux dimensions ce n'est pas beaucoup plus différent.
Il suffit d'utiliser le code du dessus, mais charger dans esi le tableau à une dimension et dans edi une ligne du tableau à deux dimensions.
Si ton tableau est de taille n * m, si tu veux te rendre à tab[x][y], l'emplacement se trouve à tab + (x * y) + y.
En fait tab[x] est un tableau à une dimension. A l'adresse de tab[x], qui est tab + (x * y), tu as un tableau de 1 dimension de taille y. Une ligne quoi.
Donc si par exemple tu as le tableau à une dimension
src[8]
et le tableau à deux dimensions dst[3][8]
Il faut que tu appelles "compare" 3 fois en chargeant l'adresse de src dans le registre esi, et dst[0] dans edi la première fois, dst[1] dans edi la deuxième fois, et dst[2] la troisième.
Hm?
Dans esi on a le pointeur vers la première chaine et dans edi le pointeur vers la deuxième.
compare: ; charge caractères en cours mov eax, [esi] mov ebx, [edi] ; compare caractère en cours cmp eax, ebx ; inégaux, alors saute vers le label "inegal" (à implémenter) jnz inegal ; les caractères sont égaux ; fin de chaine? cmp eax, 0 ; alors on termine et on saute vers le label "egal" (à implémenter) jz egal ; jusau'ici les chaines sont égales. On pointe vers leur prochain caractère inc esi inc edi jmp compare
Donc ça c'est pour des chaines sous forme de tableau à une dimension.
Maintenant pour un tableau en deux dimensions ce n'est pas beaucoup plus différent.
Il suffit d'utiliser le code du dessus, mais charger dans esi le tableau à une dimension et dans edi une ligne du tableau à deux dimensions.
Si ton tableau est de taille n * m, si tu veux te rendre à tab[x][y], l'emplacement se trouve à tab + (x * y) + y.
En fait tab[x] est un tableau à une dimension. A l'adresse de tab[x], qui est tab + (x * y), tu as un tableau de 1 dimension de taille y. Une ligne quoi.
Donc si par exemple tu as le tableau à une dimension
src[8]
et le tableau à deux dimensions dst[3][8]
Il faut que tu appelles "compare" 3 fois en chargeant l'adresse de src dans le registre esi, et dst[0] dans edi la première fois, dst[1] dans edi la deuxième fois, et dst[2] la troisième.
Hm?