Exercice 1 : Addition de 2 Donnes
ADR-1 EQU $0FF1000 ADRESSE DE LA PREMIERE DONNEE
ADR-2 EQU $0FF1002 ADRESSE DE LA DEUXIEME DONNEE
RESUL EQU $0FF1004 ADRESSE DU RESULTAT
DEBUT MOVE ADR-1,D0 PRISE EN COMPTE DE LA PREMIERE
DONNEE
ADD ADR-2,D0 ADDITION AVEC LA DEUXIEME DONNEE
MOVE D0, RESUL SAUVEGARDE DU RESULTAT
TRAP #0 RETOUR AU MONITEUR
END
Med Senhadji ASSEMBLEUR 1
Exercice 2 : addition 64 Bits
Addition 64 bits
D0 D1
OP-1 0 1 2 3
D2 D3
4 5 6 7
OP-2 MSB LSB
Rsultat dans D0, D1
Med Senhadji ASSEMBLEUR 2
Solution Exercice 2
OP-1 DS.L 2 rservation place
OP-2 DS.L 2
RESUL DS.L 2
MOVEM.L OP-1,D0-D3
ADD.L D3,D1 poids faibles
ADDX.L D2,D0 poids forts
MOVE.L #RESUL,A0
MOVEM.L D0-D1,(A0)
TRAP #0
END
Med Senhadji ASSEMBLEUR 3
Exercice 3
Recherche du nombre 20 dans un buffer de 30 chiffres
MOVE #29,D0
LEA BUFFER,A0 A0 point sur le buffer
BCL CMP.B#20,(A0,D0)
DBEQ D0,BCL
* a la sortie de la boucle, D0 contiendra le rang de du nbr sinon -1
TRAP #0
BUFFER DC.B 1,5,15,3,7,9,11,20,41...,55,34,66
Med Senhadji ASSEMBLEUR 4
Exercice 4 : Addition en BCD
1er Op $FF9000 15
1 25
2 45
3 90
15 25 45 90 05
4 05 15 90 40 10 20
2me Op $FFA000 15 31 15 86 00 25
1 90
2 40
3 10
4 20
Med Senhadji ASSEMBLEUR 5
Exercice 4 : suite
LEA $0FF9005,A0 Pointeur 1er Tableau
LEA $0FFA005,A1 Pointeur 2eme Tableau
MOVEQ #4,D1
LOOP ABCD -(A0),-(A1)
DBRA D1,LOOP
TRAP #0
END
Med Senhadji ASSEMBLEUR 6
Exercice 5 :
Somme d une suite de 16 mots rsultat dans un LONG-MOT
1) Programme
2) Adresse d implantation des instructions
3) Codage des instructions
4) Temps d excution du programme
Med Senhadji ASSEMBLEUR 7
Exercice 5 :
SOMME D UNE SUITE DE 16 MOTS
RESULTAT DANS UN MOT LONG
TAILLE EQU 16 NOMBRE DE MOTS A ADDITIONNER
DEBUT LEA BUFF(PC),A0 ADRESSE DU BUFFER DE DONNEE DANS A0
LEA RESUL(PC),A1 ADRESSE DU RESULTAT DANS A1
MOVEQ #TAILLE-2,D0 NOMBRE DE DONNEE DANS D0
MOVE.W (A0)+,D1 INITIALIATION DE DONNEE DANS D1
BCL ADD.W (A0)+,D1 ADDITION
DBRA D0, BCL CONTRLE FIN DE BOUCLE
MOVE.L D1,(A1) SAUVEGARDE DU RESULTAT
TRAP #0 RETOUR AU MONITEUR
BUFF DC.W 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
RESUL DS.L 1
Med Senhadji ASSEMBLEUR 8
Exercice 6 :
MULTIPLICATION DE DEUX CHIFFRES DE 16 BITS
RESULTAT SUR 32 BITS
L OPERATION N EST PAS SIGNEE
**************************************************************************************
DEBUT LEA PILE(PC),A7 INITIALISATION DE LA PILE
LEA ADR-1(PC),A0 ADRESSE DES OPERANDES DANS A0
MOVE (A0)+,D0 OPERANDE 1 DANS D0
MOVE (A0)+,D1 OPERANDE 2 DANS D1
BSR MUL_16
MOVE.L D2,(A0)+ SAUVEGARDE RESULTAT
TRAP #0 RETOUR AU MONITEUR
******************************************************************************************************
MUL_16 CLR.L D2 INITIALISATION DU REGISTRE RESULTAT
CLR D3 INITIALISATION COMPTEUR DE BOUCLE
BCL ASR #1,D0
BCC RET
Med Senhadji ASSEMBLEUR 9
MOVE D1,D4
LSL.L D3,D4 DECALAGE SUIVANT LE BIT TRAITE
ADD.L D4,D2 ADDITION AVEC LE RESULTAT EN COURS
RET ADDQ #1,D3
CMPI #16,D3
BNE BCL
RTS
******************************************************************************************************
ADR-1 DC $1111
ADR-2 DC 2
DS.L 20 RESERVATION DE LA PLACE POUR LA PILE
PILE DS.L 1
Med Senhadji ASSEMBLEUR 10
Exercice 7 :
PROGRAMME
********************************************************************************************
TRI DES DONNES PRESENTE DANS LE TABLEAU TAB-OR
PAR VALEUR CROISSANTES DANS LE TABLEAU TAB-AR
*********************************************************************************************
DEBUT LEA PILE(PC),A7 INIT PILE
LEA TAB_OR(PC),A0 POINTEUR TABLEAU DE DEPART DANS A0
LEA TAB_AR(PC),A1 POINTEUR TABLEAU D ARRIVEE DANS A1
MOVE NB_DAT(PC),D0 NOMBRE DE DONNEES
SUBQ #1,D0 AJUSTEMENT POUR LA BOUCLE
*
BSR INIT INITIALISATION TABLEAU RESULTAT
*
BCL2 MOVE (A0)+,D1 DONNEE COURANTE DANS D1
MOVE.L A1,A2 TABLEAU RESULTAT DANS A2
BCL3 CMP (A2)+,D1 REPERER La place de la donne courante dans le tableau
BGT BCL3 rsultat
*
BSR INSERT INSERER LA DONNEE EN D1 A SA PLACE
Med Senhadji ASSEMBLEUR 11
Exercice 7 : suite
DBEQ D0, BCL2 BOUCLE SUR L ENSEMBLE DES VALEURS
TRAP #0 RETOUR AU MONITEU
*************************************************************************************************************
* INIT: INITIALISE LE TABLEAU RESULTAT AVEC LA VALEUR MAXIMALE
*************************************************************************************************************
INIT MOVE.L D0-D1/A1,-(A7) SAUVEGARDE DE D0, D1 ET A1
MOVE #$7FFF,D1 CHIFFRE MAX
BCL1 MOVE D1,(A1)+ DANS LE TABLEAU RESULTAT
DBEQ D0,BCL1
MOVE D1,(A1) 1 CASE DE PLUS EN CRITERE D ARRET
MOVE.M.L (A7)+,D0-D1/A1 RESTITUTION DES REGISTRES
RTS
*************************************************************************************************************
* INSERT : INSERTION DE LA VALEUR DANS D1 *
* A L ENDROIT POINTE PAR A2 *
* DECALAGE DES DONNEES SUIVANTES *
*************************************************************************************************************
INSERT MOVE.L D0-D3/A0-A2,-(A7) SAUVEGARDE DES DONNEES
SUBA #2,A2 A2 SUR LA CASE A MODIFIE
Med Senhadji ASSEMBLEUR 12
Exercice 7 : suite
MOVE NB_DAT(PC),D2
LSL #1,D2
ADDA D2,A1 ADRESSE FINALE DANS A1
*
BCL4 MOVE -(A1),D0
MOVE D0, 2(A1)
CMPA.L A2,A1
BNE BCL4
*
MOVE D1,(A2) ON PLACE LA DONNEE A SA PLACE
MOVE.L (A7)+D0-D3/A0-A2 RESTITUTION DES REGISTRES
RTS
********************************************************************************************************
LONG EQU 10 * 10 DONNEES A TRIER
TAB_OR DC $20,$30,$50,$15,$12
DC $6, $2,$087,$5,$32
TAB_AR DS LONG+1
NB_DAT DC LONG
DS.L 100 * RESERVATION ESPACE PILE
PILE DS.L 1
Med Senhadji ASSEMBLEUR 13
Exercice 8 :
UTILISATION DES INSTRUCTIONS DE MANIPULATION DECIMALES
ADDITION DE DEUX NOMBRES DECIMAUX DE 8 CHIFFRES
DEBUT LEA ADR-1(PC),AO POINTEUR SUR LE PREMIER CHIFFRE
ADDQ #4,A0
MOVE.L ADR-2(PC),D0 INITIALISATION RESULTAT
LEA RESULT (PC),A1 POINTEUR SUR LE RESULTAT
MOVE.L D0,(A1)+ INITIALISATION RESULTAT
ABCD -(A0),-(A1) ADDITION DECIMALE
ABCD -(A0),-(A1) ADDITION DECIMALE
ABCD -(A0),-(A1) ADDITION DECIMALE
ABCD -(A0),-(A1) ADDITION DECIMALE
MOVE.L RESULT(PC),D0
TRAP #0
Med Senhadji ASSEMBLEUR 14
Solution Exercice 5
D1 result I= 0
J= 16
I=0 ou
D1 BUFF (I) J D0
BUFF(1)
I+1
BUFF (I) + D1 D1
I=I+1
NON
I = 16
oui
Result BUFF
Med Senhadji ASSEMBLEUR 15