Se connecter / S'enregistrer
Votre question
Résolu

Programmer en assembleur

Tags :
  • element
  • Programmation
Dernière réponse : dans Programmation
13 Février 2012 15:14:01

slt tous le monde j'ai besoin d'aide en ce qui concerne un exercice sur la transposé de matrice n*n avec le 6809 et le 8086 et merci

Autres pages sur : programmer assembleur

a c 232 L Programmation
13 Février 2012 16:16:52

Salut,

Et c'est quoi ton problème ?
m
0
l
13 Février 2012 16:28:27

en fait je suis bloqué au niveau du programme et comment jouer avec les indice , bien sur en C c'est facile la transposé ,echanger les valeurs en inversant les indice
k = t [ i ][ j ];
t [ i ][ j ] = t [ j ][ i ];
t [ j ][ i ] = k ;
mais avec l'assembleur je suis bloqué
m
0
l
Contenus similaires
a c 232 L Programmation
13 Février 2012 16:34:19

Je maîtrise pas trop l'assembleur, donc c'est peut être pas ça, mais tu peux pas t'en sortir juste avec des mov ?

Il devrait y avoir Cricky qui passe dans le coin, qui devrait pouvoir mieux t'aider que moi là-dessus.
m
0
l
13 Février 2012 16:38:15

en fait c pas mov le probleme mais c de jouer avec la dimension de la mat et les indices
mais merci en tout cas ,pour cricky il est tjrs là ?
m
0
l
a c 232 L Programmation
13 Février 2012 16:46:45

Il passe régulièrement... il devrait passer d'ici ce soir je pense :) 
m
0
l
13 Février 2012 16:49:10

bon si tu le remarque demande lui s'il te plait s'il connais qqchose d'accord
m
0
l

Meilleure solution

a b L Programmation
13 Février 2012 20:13:31

La mémoire est linéaire. Il n'y a qu'une dimension, donc tu dois gérer les 2 dimensions toi-même.
Typiquement, tu prends ton tableau et tu prends toutes les lignes pour les mettre les unes après les autres. Par exemple, pour la matrice suivante:
1 2 3
4 5 6
7 8 9

devient en mémoire:
1 2 3 4 5 6 7 8 9

et tu sais que toutes les 3 valeurs, tu passes à la ligne suivante, car tu sais que la largeur du tableau fait 3 valeurs.
C'est de cette manière qu'un programme C est compilé (tu peux le voir en regardant la mémoire en mode debug).

Du coup, pour modifier l'élément (i, j), tu dois calculer l'offset dans le tableau pour modifier le bon élément.
De manière générale : offset = j * (largeur de matrice) + i
Tu peux faire l'inverse en faisant le quotient et le reste de la division entière, mais autant l'éviter si tu peux.
partage
13 Février 2012 22:01:16

merci mon ami cricky et vous aussi omar vraiment vous m'avez aidez j'ai compris merci encore .
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS