Quelques exercices simples pour bien démarrer les microproc

Informatique Industrielle : Quelques exercices simples pour bien démarrer les microproc

Télécharger PDF

Exercices simples pour bien démarrer avec les microprocesseurs 68000

1. Calcul de la somme de deux nombres avec le 68000

On souhaite calculer la somme de 45 et 85. Puisque les deux valeurs et leur somme se trouvent dans l’intervalle [-128,127], on utilise les octets (8 bits). Voici le programme en assembleur :

MOVE.B #45,D0
ADD.B #85,D0
TRAP #0

Le résultat est stocké dans le registre D0.

Exercices supplémentaires

Utiliser la commande SUB pour calculer 45 - 12.

Utiliser la commande MULS pour calculer 45 * 12.

Utiliser la commande MULU pour calculer 45 * 12.

Utiliser la commande MULS pour calculer -45 * 12.

2. Calcul d’une expression arithmétique avec le 68000

Calculer la somme 45 + 12 - 48 + 18. Puisque les valeurs dépassent l’intervalle [-128,127], on utilise 16 bits.

Méthode 1 :

MOVE.W #45,D0
ADD.W #12,D0
ADD.W #-48,D0
ADD.W #18,D0
TRAP #0

Méthode 2 : Utilisation d’un tableau

LEA TAB(PC),A0
A0 pointe vers la première donnée du tableau
MOVE.W (A0)+,D0
D0 contient 45
ADD.W (A0)+,D0
D0 contient 57
ADD.W (A0)+,D0
D0 contient 9
ADD.W (A0)+,D0
D0 contient 27
TRAP #0
TAB DC.W 45,12,-48,18

3. Calcul de la somme avec plusieurs données

Calculer la somme 45 + 12 - 48 + 18 - 5 + 81 + 12 + 35 - 18 + 89.

Méthode avec boucle :

LEA TAB(PC),A0
A0 pointe vers la première donnée du tableau
MOVE.W (A0)+,D0
D0 contient 45
MOVE.W #8,D1
Compteur initialisé à 9 - 1
BCL ADD.W (A0)+,D0
Accumulation des données
DBRA D1,BCL
TRAP #0
TAB DC.W 45,12,-48,18,-5,81,12,35,-18,89

Exercices supplémentaires

Calculer 5 * 10 sans utiliser la commande MUL, en utilisant une boucle avec l’instruction DBRA.

Calculer la somme 7 + 10 + 13 + ... + 43.

4. Sous-programme pour trouver le maximum de deux valeurs signées

Écrire un sous-programme qui reçoit deux valeurs signées (mots) dans D0 et D1 et retourne la plus grande dans D2.

Corrigé :

MAX MOVE.W D0,D2
CMP.W D1,D0
BGE OK
MOVE.W D1,D2
OK RTS

Exercices supplémentaires

Tester le programme pour différentes valeurs de D0 et D1.

Écrire un sous-programme ABS qui reçoit une valeur signée dans D0 et retourne sa valeur absolue dans D1.

Tester le programme pour des valeurs positives et négatives de D0.

5. Sous-programme pour trouver le minimum de trois valeurs signées

Écrire un sous-programme MIN qui reçoit trois valeurs signées (mots) dans D0, D1 et D2 et retourne la plus petite dans D3.

6. Sous-programme pour calculer une fonction quadratique

Écrire un sous-programme FONC qui reçoit une variable x dans D0.W et retourne dans D1.L la valeur x² + x + 5.

7. Sous-programme pour vérifier la parité d’une valeur

Écrire un sous-programme qui reçoit une valeur dans D0 et retourne dans D1, 1 si D0 est impaire et 0 si D0 est paire.

Corrigé :

SP MOVE.W D0,D1
AND.W #1,D1
RTS

Exercices supplémentaires

Écrire un sous-programme qui reçoit une valeur dans D0 et retourne dans D1 le reste de la division de D0 par 4.

Écrire un sous-programme qui reçoit une valeur dans D0 et retourne dans D1 le reste de la division de D0 par 8.

FAQ

Qu’est-ce que le registre D0 dans le 68000 ?

Le registre D0 est l’un des registres de données du microprocesseur 68000. Il est souvent utilisé pour stocker des résultats intermédiaires ou finaux, notamment dans les opérations arithmétiques.

À quoi sert la directive DC.W ?

La directive DC.W (Define Constant Word) permet de définir des données en mémoire sous forme de mots (16 bits) dans un programme assembleur pour le 68000.

Qu’est-ce que l’instruction TRAP ?

L’instruction TRAP est utilisée pour déclencher une interruption logicielle, souvent pour sortir d’un programme ou afficher un résultat en mode débog.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne