Informatique Industrielle : Examen Microprocesseurs 6800
Télécharger PDFINSFP de Bejaia – Microprocesseurs (6800)
Questions de cours
Quels sont les différents registres du microprocesseur 6800 ?
Donner le cycle d’exécution d’une instruction en illustrant avec un schéma.
Citer deux périphériques d’entrée, deux de sortie et deux bidirectionnels.
Citer les différents modes de transfert d’entrée/sortie.
Mode d’adressage dans chaque cas
Pour les instructions suivantes, identifier le mode d’adressage utilisé :
- ADD A #17 → Mode d’adressage immédiat.
- LDX #CD12 → Mode d’adressage immédiat.
- LDA B A21F → Mode d’adressage direct (adresse absolue).
- LDA B X, 07 → Mode d’adressage indexé avec décalage.
- BRA étiquette → Mode d’adressage relatif.
- ADD B #00 → Mode d’adressage immédiat.
Exercice 2 – Analyse d’un code Assembleur (6800)
Soit le code Assembleur suivant :
CLRA
CLRB
LDX #0000
LDA A X, 07
ADD B #00
STA A X, 07
LDA A X, 07
ADD B #00
STA B X, 07
LDA A X, 07
ADD B #00
STA B X, 07
BRA fin
fin: STA A X, 00
Après exécution, que contiennent :
- Les accumulateurs A et B → Les valeurs dépendent des opérations effectuées (explications manquantes, mais généralement liées à des transferts ou calculs).
- Le registre X → L’adresse initiale ou modifiée selon les instructions.
- Les cases mémoire [0000] et [0012] → Contenu initial ou résultat des opérations.
À la ligne 6, de quel mode d’adressage s’agit-il ? → Mode d’adressage indexé avec décalage.
Ajouter les instructions suivantes :
CLR 0000
CLRA
Quel est l’effet de ces instructions ?
- CLR 0000 → Efface (met à zéro) la case mémoire située à l’adresse 0000.
- CLRA → Efface (met à zéro) l’accumulateur A.
Quel est le mode d’adressage dans les deux cas ?
- CLR 0000 → Mode d’adressage direct (adresse absolue).
- CLRA → Mode d’adressage implicite.
Exercice 3 – Série de Fibonacci (20 premiers termes)
Réaliser un code Assembleur (6800) pour calculer les 20 premiers termes de la série de Fibonacci, stockés à partir de l’adresse 0040.
Remarque : Dans la série de Fibonacci, on définit :
Un+2 = Un+1 + Un avec U1 = 1 et U2 = 1 (ou 2 selon contexte).
Exemple de structure pour le code :
ORG 0040
LDX #00 ; Initialisation du compteur pour les termes
LDA A #1 ; U1 = 1
STA A X ; Stockage du premier terme
LDX #01 ; Incrémentation de l'index
LDA A #1 ; U2 = 1 (ou 2 selon la série)
STA A X ; Stockage du deuxième terme
; Boucle pour calculer les 18 termes suivants (U3 à U20)
LDX #02 ; Index pour le troisième terme
boucle:
LDA A X-1 ; Chargement de U(n)
ADD A X-2 ; Ajout de U(n-1)
STA A X ; Stockage de U(n+1)
INX ; Incrémentation de l'index
CMPX #20 ; Comparaison avec le 20ème terme
BNE boucle ; Répéter si non égal
fin: JMP fin ; Fin du programme
FAQ
1. Qu’est-ce qu’un mode d’adressage en Assembleur ?
Un mode d’adressage désigne la méthode utilisée pour spécifier l’opérande d’une instruction. Il peut être immédiat, direct, indexé, relatif, etc.
2. Comment initialiser une série de Fibonacci en Assembleur ?
Il faut définir les deux premiers termes (U1 et U2) dans des cases mémoire, puis utiliser une boucle pour calculer les termes suivants en additionnant les deux précédents.
3. Pourquoi utiliser le registre X pour stocker les termes de Fibonacci ?
Le registre X sert d’index pour accéder aux cases mémoire successives où les termes sont stockés, facilitant ainsi l’itération dans la boucle de calcul.