CHAPITRE 6 Les tableaux 1
Suite de composantes de même type Donc de même longueur Contiguë en mémoire Possédant un nom Donc une adresse Où chaque composante est accessible grâce à un jeu d’indices Donc un déplacement par rapport à l’adresse du tableau 2
Les tableaux 3
Les vecteurs Facilement représentable La mémoire est un vecteur de cellules! 4 c
Les vecteurs 5 c
6
Création d’un vecteur sur SPARC 7.section ".bss".align 4 v1:.skip4*100.section ".data".align 2 v2:.half4, 13, 34, 58, 67, 68, 77, 79, 83, 95
Les matrices 8
On peut trouver l’index en dimension 1 à partir des indices de dimension 2! 9 A
Les matrices 10 A A[2,3] 2 e rangée, 3 e colonne
Les matrices 11
Les matrices Création d’un vecteur sur SPARC 12.section ".bss".align 4 m1:.skip4*100*100.section ".data".align 2 m2:.half4, 13, 34, 58, 67, 68, 77, 79, 83
Les matrices 13
Exemple Affichage d’une matrice en mémoire Adresse de la matrice : A Chaque élément est un mot de 32 bits La matrice est en format rangée en mémoire Le nombre de rangées est à l’adresse mémoire M Le nombre de colonnes est à l’adresse mémoire N ptfmt1 contient l’adresse de la chaîne : "%u, " 14
Exemple 15 pgm00: setxA, %l7, %l0! L’adresse de A est dans %l0 setxM, %l7, %l1 lduw[%l1], %l1! Le nombre de rangées est dans %l1 setxN, %l7, %l2 lduw[%l2], %l2! Le nombre de colonnes est dans %l2 mulx%l1, %l2, %l3! %l3 est le nombre de case dans la matrice sllx%l3, 2, %l3! Multiplier par 4 pour avoir le dernier index clr%l4! %l4 contient l’index courant pgm05:lduw[%l0+%l4], %o1! %o1 contient la valeur à A+index setxptfmt1, %l7, %o0! L’adresse du format pour printf dans %o0 callprintf inc4, %l4! On passe au prochain index cmp%l4, %l3! Est-ce qu’on est rendu à la fin? bnepgm05 nop pgm10: