Informatique Industrielle : TP1 : Architecture et instructions du 6800
Télécharger PDFTravaux Pratiques sur l’Architecture et les Instructions du Microprocesseur 6800
Introduction
Ce TP vise à familiariser les étudiants avec le logiciel Moto6800 et à initier leur pratique du langage assembleur pour le microprocesseur Motorola 6800.
Objectifs
Les objectifs principaux sont :
- Se familiariser avec l’interface du logiciel Moto6800 et ses fonctionnalités.
- Débuter avec le langage assembleur en manipulant les registres et instructions de base du 6800.
Matériel Utilisé
Un PC équipé du logiciel Moto6800.
Partie A : Découverte du Logiciel Moto6800
Ouvrez le logiciel Moto6800 et explorez ses différentes fenêtres pour comprendre son fonctionnement.
1) Éditeur Moto6800
Dans la fenêtre principale de l’éditeur, identifiez les éléments suivants :
- Registres du 6800 : Accumulateurs A et B, registre d’index X, compteur programme (PC), registre d’état.
2) Exécution du Programme
Après avoir écrit un programme dans l’éditeur, observez les changements dans les registres PC et A lors de l’exécution. Le bouton d’exécution passe du rouge au gris. Pour relancer l’exécution ou modifier le programme, utilisez le bouton « Mise à jour ».
Les fenêtres disponibles pour visualisation incluent :
- Programme : Affichage du code assembleur.
- RAM (8 Ko) : Espace mémoire modifiable.
- ROM (32 Ko) : Espace mémoire non modifiable (simulation).
- PIA : Affichage des registres du périphérique d’interface.
Ces fenêtres peuvent être ouvertes simultanément pour une meilleure analyse.
3) Ouvrir et Enregistrer un Programme
Les actions d’ouverture et d’enregistrement d’un programme se réalisent via les menus déroulants de la fenêtre principale.
Partie B : Manipulation des Registres du 6800
I) Programme de Base
Écrivez le code suivant dans l’éditeur Moto6800 :
LDAA #$25 STAA $0000 LDAB #$05 STAB $0002 END
Après exécution, les valeurs des registres modifiés sont :
- Accumulateur A : $25
- Accumulateur B : $05
Les cases mémoire modifiées et leurs adresses sont :
| Adresse | Contenu |
|---|---|
| $0000 | $25 |
| $0002 | $05 |
II) Ajout d’Instructions
Ajoutez le code suivant avant la pseudo-instruction END :
LDAA #$32 STAA $0002 CLRA
Observations après exécution :
- Le registre A est chargé avec la valeur $32 puis réinitialisé à $00 par CLRA.
- La mémoire à l’adresse $0002 contient initialement $05 et est remplacée par $32 avant d’être écrasée par $00.
- Le registre B reste inchangé.
III) Programme avec Instructions Indexées
Voici un programme utilisant des instructions indexées :
$0000 db $01 $0001 db $02 LDX #$00D0 LDA A $00,X LDA B $01,X ABA STA A $02,X INX CPX #$00D8 END
Exécution « pas à pas » et résultats :
- Registre X : Initialement $00D0, puis incrémenté à $00D1, $00D2, ..., $00D7.
- Accumulateur A : Charge $01 (adresse $00D0), puis $02 (adresse $00D1), puis additionne avec B.
- Accumulateur B : Charge $02 (adresse $00D1).
- Résultat après ABA : $03 (car $01 + $02 = $03).
- Adresse finale de X : $00D7 avant la comparaison.
Cases mémoire modifiées après exécution :
| Adresse | Contenu |
|---|---|
| $00D2 | $03 |
Conclusion
Ce TP permet de comprendre les bases de l’assembleur pour le microprocesseur 6800, notamment la manipulation des registres et des instructions d’accès mémoire, ainsi que l’utilisation des opérations arithmétiques et de l’indexation.
FAQ
1. Qu’est-ce que le registre d’état dans le 6800 ?
Le registre d’état (Condition Code Register) contient des flags indiquant le résultat des opérations (comme le carry, zero, overflow, etc.). Il est utilisé pour contrôler le flux du programme.
2. À quoi sert l’instruction INX ?
INX incrémente le registre d’index X de 1. Elle est souvent utilisée pour parcourir des tableaux ou des zones mémoire consécutives.
3. Comment interpréter les valeurs en hexadécimal dans Moto6800 ?
Les valeurs en hexadécimal (comme $25) représentent des données binaires converties en base 16. Par exemple, $25 correspond à 37 en décimal.