TDARCHITECTURE DES ORDINATEURS Année Universitaire : 2019-2020
SMI-S4 1/2 I.OUADNOUNI
Programmation Assembleur 68HC11 Série de TD n°01
Exercice 1 : Opérations sur les registres d’index 1- En partant du programme suivant :
ORG $F054 LDS #$7F88 LDY #$AB63 LDAB #$36 ABY
PSHY
SUBB #$2A
a) Après l'exécution du programme, quel est le contenu des registres :
B = ____ Y = _______ SP = _____ PC = _______ CCR : N = __ Z = __
b) Quels sont les parties modifiées après l’exécution de PSHY et quels sont leurs nouveaux contenus.
2- Quel est le contenu de X après l’exécution du programme suivant : LDS #$ 2000
PSHA PSHY TSX PULX X = ______
Exercice 2
1- Ecrire un programme en assembleur qui permet d’ordonner le contenu de trois adresses
$ 3000, $3001 et $3002 dans un ordre croissant.
2- Ecrire un programme qui permet de faire la multiplication du contenu de deux adresses mémoires $2000 et $2001 et mettre le résultat dans $4000 et $4001.
Exercice 3: Opérations sur les tableaux
Ecrire un programme en assembleur permettant d’effectuer les opérations suivantes sur un tableau de taille 15, dont le premier élément est placé à l’adresse $D000 :
Calculer la moyenne du tableau et la sauvegarder à l’adresse $D020 ;
Trier le tableau ;
Rechercher une valeur sur le tableau stockée dans l’adresse $5000 ;
Rechercher la valeur maximale du tableau et la sauvegarder à l’adresse $D021 ;
Rechercher la valeur minimale du tableau et la sauvegarder à l’adresse $D022 ;
TDARCHITECTURE DES ORDINATEURS Année Universitaire : 2019-2020
SMI-S4 2/2 I.OUADNOUNI
Exercice 4
Ecrire un programme qui détermine, dans un tableau d’entiers TAB de longueur N, le nombre maximum d’éléments consécutifs identiques.
Exemple : si le tableau contient {0, 1, 1, 2, 3, 3, 3, 3, 4, 5, 5, 5}, le résultat est 4.
Exercice 5
1-Ecrire un programme qui recherche la valeur maximale d’une matrice 4*4, après l’avoir remplie aux adresses $2000 à $200F.
2-Ecrivez un programme qui inverse l'ordre des caractères dans une chaîne de neuf caractères.
Chaque caractère est équivalent à un octet. Le programme doit vérifier si une chaîne est un palindrome.
Exercice 6
Ecrire un programme en assembleur permettant de calculer le nième terme de la suite de Fibonnacci définie comme suit :
U0=1 U1=1
Un=Un-1+Un-2
La valeur de n est contenue dans l’adresse $2000, et le résultat sur 16 bits doit être stocké dans les adresses $2001 et $2002, Votre programme doit vérifier que n < 25, pour qu’il n’y ait pas dépassement.