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
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
|