100% ont trouvé ce document utile (1 vote)
661 vues15 pages

Exercices d'Assembleur : Addition et Tri

Ce document présente plusieurs exercices sur l'addition et la manipulation de données en assembleur m68000. Les exercices couvrent des sujets comme l'addition de nombres, l'addition sur 64 bits, la recherche d'un nombre dans un tableau, l'addition en BCD, la somme d'une suite de mots, la multiplication sur 16 bits et le tri d'un tableau.

Transféré par

Meryeme Bayri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Instruction ADD.L,
  • Tri,
  • Instruction LSL,
  • Instruction ADD,
  • Instruction DC.B,
  • Instruction ADD.W,
  • Chiffres,
  • Instruction MOVE.L,
  • Instruction CLR,
  • Instruction ASR
100% ont trouvé ce document utile (1 vote)
661 vues15 pages

Exercices d'Assembleur : Addition et Tri

Ce document présente plusieurs exercices sur l'addition et la manipulation de données en assembleur m68000. Les exercices couvrent des sujets comme l'addition de nombres, l'addition sur 64 bits, la recherche d'un nombre dans un tableau, l'addition en BCD, la somme d'une suite de mots, la multiplication sur 16 bits et le tri d'un tableau.

Transféré par

Meryeme Bayri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Instruction ADD.L,
  • Tri,
  • Instruction LSL,
  • Instruction ADD,
  • Instruction DC.B,
  • Instruction ADD.W,
  • Chiffres,
  • Instruction MOVE.L,
  • Instruction CLR,
  • Instruction ASR

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

Vous aimerez peut-être aussi