Engineering School, 2nd year
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1.5 KiB

*********************************************************************************
* Origine du fichier l:\up\tp3\ex1\sa_ps2.sa (rev. 16-02-2004) *
* Ce fichier est copié dans le répertoire (project) f:\up\tp3\ex1 *
* pour être complété. *
* *
* BINOME : *
*********************************************************************************
* Fonction sa_ps2() en assembleur linéaire
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Cette fonction peut être appelée dans un programme C dans lequel on a déclaré
* au début du fichier : extern float sa_ps2(float *,float *, int);
*
* Exemple d'appel : yf= sa_ps2(af, xf, 256);
*
* Consulter l'aide en ligne (cproc) pour savoir comment récupérer les paramètres et
* faire le return de la procédure.
*
* POUR CE PROGRAMME :
* ^^^^^^^^^^^^^^^^^^^
* PROGRAMMATION EN ASSEMBLEUR LINÉAIRE. CALCUL AVEC DES FLOTTANTS
*****************************************************************
.def _sa_ps2
NBPS .equ 100
_sa_ps2 .cproc ot1, ot2, taille
.reg nbre_ps
.reg t1
.reg t2
.reg e1
.reg e2
.reg somme
.reg s1
.reg elems
mvk NBPS,nbre_ps
ps: zero somme
mv taille, elems
mv ot1, t1
mv ot2, t2
loop:
sub elems, 1, elems
ldw *t1++, e1
ldw *t2++, e2
mpysp e1, e2, s1
addsp s1, somme, somme
[elems] b loop
sub nbre_ps,1,nbre_ps
[nbre_ps] b ps
.return somme
.endproc