Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur
Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/01/2012, 20h42   #1
snow_angel
Invité de passage
 
Femme rihem dalhoumi
Étudiant
Inscription : janvier 2012
Messages : 1
Détails du profil
Informations personnelles :
Nom : Femme rihem dalhoumi
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 1
Points : 0
Points : 0
Par défaut Macro en langage assembleur Mars 4.1

Bonjour

Voici une macro pour Mars 4.1 (MIPS)

Code :
1
2
3
4
5
6
matelment $1$2,$3,$4
sll $1,RG3,2
add $1,$1,RG4
sll $1,$1,2
add $1,$1,RG2
lw rG1,0($1)
SVP, qui peut m'expliquer les étapes de cette macro qui permet d'extraire un élément d'une matrice ?
snow_angel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 14h48   #2
edfed
Membre chevronné
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 471
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 471
Points : 619
Points : 619
Citation:
Envoyé par snow_angel Voir le message
Bonjour

Voici une macro pour Mars 4.1 (MIPS)

Code :
1
2
3
4
5
6
matelment $1,$2,$3,$4 ;ici, il faut pas oublier de separer $1 et $2 par une ,
sll $1,RG3,2 ;
add $1,$1,RG4
sll $1,$1,2
add $1,$1,RG2
lw rG1,0($1)
SVP, qui peut m'expliquer les étapes de cette macro qui permet d'extraire un élément d'une matrice ?
sans connaitre l'assembleur mips, on peut constater qu'il y a un calcul puis un chargement à partir du calcul.

mais en regardant ici -> http://www.mrc.uidaho.edu/mrc/people...al/MIPSir.html
et ici-> http://courses.missouristate.edu/Ken...20Tutorial.doc (à la page 18).
le calcul semble etre effectivement un calcul de position dans une table de valeurs 32 bits.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
element (RG1,RG2,RG3,RG4)
cellule=RG3*4
cellule=cellule+RG4
cellule=cellule*4
cellule=cellule+RG2
RG1=[cellule]
 
element (returnvalue,tablepointer,collumn,line)
cellule=collumn*4 ;4=nombre de lignes
cellule=cellule+line ;plus le numero de ligne
cellule=cellule*4 ;4=taille d'un element
cellule=cellule+tablepointer
returnvalue=[cellule]
donc apparement, la largeur de la matrice de 4 lignes sur X collonnes d'elements de 4 octets (ou l'inverse x lignes de 4 collones)...
la coordonnée de la case est passée par $3 et $4
la matrice est passée par $2 et la valeur de la case est retournée dans $1.
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h40.


 
 
 
 
Partenaires

Hébergement Web