Module 11
Introduction aux Microprocesseurs
Résumé de Théorie
Télécharger tous les modules de toutes les filières de l'OFPPT sur le site dédié à la formation professionnelle au Maroc :
www.marocetude.com
Pour cela visiter notre site www.marocetude.com et choisissez la rubrique : MODULES ISTA
Première Année
Programme de Formation des Techniciens Spécialisés en
Électronique
RÉDACTION
Serge Leblanc
RÉVISION TECHNIQUE
Pierre Asselin & Christian Lépine
RÉVISION LINGUISTIQUE
François Gaudreau
COMMISSION DE VALIDATION
Formateurs de l'OFPPT
Addressing Modes
Immediat Direct Indexed Extended Inherent 5 3 2 1 0
Instruction Forms Op ~ # Op ~ # Op ~ # Op ~ # Op ~ # Description H N Z V C
LD LDA 86 2 2 96 4 2 A6 4+ 2+ B6 5 3 M -> A • 0 •
LDB C6 2 2 D6 4 2 E6 4+ 2+ F6 5 3 M -> B • 0 •
1 2 3 4 5 6 7 8 9
Figure 2-4 Carte de codification du 6809
Chaque colonne est numéroté et correspond à ce qui suit.
Col. #1 Contient les instructions possibles pour le microprocesseur.
Col. #2 Détermine si l'instruction opère avec la mémoire ou avec un registre; dans
ce cas avec quel registre.
Col. #3, 4, 5, 6 et 7 Ces 5 colonnes représentent les 5 types de base des modes
d'adressages du microprocesseur:
Immediat (opérande: une valeur)
Direct (opérande: une adresse de 8 bits)
Indexed (opérande: un registre pointeur)
Extended (opérande: une adresse de 16 bits)
Inhérent (il n'y a pas d'opérande)
Chacune de ces colonnes est subdivisée en 3 autres colonnes:
Op (code d'opération de l'instruction)
~ (nombre de cycles de l'instruction)
# (nombre d'octets de l'instruction)
Col. #8 C'est une explication courte de ce que fait l'instruction.
Col. #9 Cette section (5 colonnes) indique comment les drapeaux H, N, Z, V et C
vont réagir à l'exécution de l'instruction. Vous trouverez la légende des
symboles, utilisés dans ces colonnes, sur la carte de codification à la suite
des instructions.
ADRESSE:
La progression des adresses dépend de la longueur en octets de l'instruction.
CODE MACHINE:
Ce sont les codes sous la forme hexadécimale correspondant à l'instruction. On les trouve
sur la carte de codification du MC6809.
ÉTIQUETTE:
Ce sont des mots représentatifs qui servent de références. Elles remplacent des adresses
ou des constantes.
MNÉMONIQUE:
C'est l'instruction complète incluant l'opération et l'opérande.
OPERATION: C'est l'instruction de base.
OPERANDE: C'est la donnée de l'instruction. Elle peut représenter une valeur,
une adresse ou un registre. Certaines instructions n'utilisent pas
d’opérande.
COMMENTAIRE:
Champ optionnel mais très utile pour la compréhension du programme. Chaque ligne ne
doit pas être nécessairement commentée; seules les lignes clés doivent l'être.
Conseils pratiques:
- Éviter de répéter l'instruction textuellement.
- N’utiliser que des commentaires pertinents à la compréhension du programme.
- Les commentaires sont de type télégraphique pour éviter que le programme
ressemble à une oeuvre littéraire!!!
2.6.2 Algorithme
L'algorithme est la description, étape par étape, des opérations à effectuer sur un
ensemble de données pour arriver aux résultats. Ces données doivent avoir été bien
définies dans la description de la tâche.
Les différentes étapes sont ordonnées de façon séquentielle, c'est-à-dire comment elles se
déroulent dans le temps.
2.6.3 Ordinogramme
Un ordinogramme est une représentation graphique des étapes suivies par un programme.
Cette façon d'illustrer la séquence logique des opérations a trois avantages:
- facilite le codage ou l'écriture du programme;
- facilite la compréhension du programme;
- est utile pour le dépannage du programme.
Après le tracé de l'ordinogramme, il faut en vérifier le cheminement logique par des
essais théoriques avec quelques données numériques avant d'écrire les instructions en
détail.
- Traitement d'information.
- Renvoi de page.
Figure 2-5
decremente
CODE -> LEDs
VALUE
DELAI VALUE
oui
différent de 0
?
décalage à
gauche de non
CODE
Retour
CODE
oui
est différent de
0?
non
Figure 2-6
La section d'initialisation décrit et initialise toutes les constantes et les variables utilisées
dans le programme. Un rapide coup d'oeil à cette section empèche d'utiliser le même
symbole pour deux quantités différentes.
Le programme principal unit tous les sous-programmes et coordonne la suite d'exécution
de ceux-ci. Il suffit donc de regarder cette section pour voir les grandes tâches
qu'accomplira le programme.
Chaque module ou sous-programme, appelé aussi sous-routine, est un petit bloc de
programmation qui réalise une partie bien spécifique (formant toutefois un tout
indépendant) de l'ensemble logique nécessaire à la résolution du problème.
Les avantages de la programmation structurée sont:
la lisibilité;
la facilité de compréhension par autrui;
la rapidité dans la réalisation;
la rapidité à dépanner;
la facilité à modifier.
Si les registres affectés par la sous-routine sont déjà utilisés par le programme qui appelle
cette sous-routine, il faudra, avant d'appeler cette dernière, sauver le contenu de ces
registres sur la pile. Ainsi, lorsque l'exécution de la sous-routine sera terminée, le contenu
de ces registres pourra être récupéré avant de reprendre l'exécution du programme
principal. Cette méthode s'applique aussi avec les sous-routines du moniteur dans la
ROM. De manière générale, une sous-routine sera plus claire si ces registres sont sauvés
au tout début de celle-ci et récupérés avant de retourner au programme principal.
Sauvez votre programme souvent au fur et à mesure que votre travail avance. Si le
système a une défaillance, vous ne serez pas obligé de recommencer au complet.
2.7.2 Dépannage
Pour dépanner vos programmes, utilisez des points d’arrêts aux endroits stratégiques afin
de trouver l'endroit où le programme cafouille. Ainsi, l'ordinateur se rendra rapidement
jusqu'au point d'arrêt puis arrêtera et attendra que vous lui donniez la permission de
continuer l'exécution du programme. Vous pourrez consulter les registres et les variables
du programme afin de déceler l’intermittance (BUG) avant de continuer l'exécution. On
peut aussi exécuter le programme en mode pas-à-pas et surveiller la progression des
registres et les actions sur les sorties.
2.7.3 Documentation
Pour pouvoir utiliser, corriger ou améliorer un programme, il est essentiel de bien le
documenter. Deux types de renseignements doivent être fournis:
la documentation pour l'usager;
la documentation technique.
Constant offset Idem. à Constant offset from R sauf que le programme et les données
fromPC (tables) sont relocalisables.
2.10 Exercices
Exercices sur les modes d'adressage
# 1 - Trouvez le mode d’adressage utilisé pour chaque instruction. Les instructions de cet
exercice ne représentent pas un programme utilisable.
Mnémonique Mode
Opcode Opérande
CLRA
LDB #$B4
INCA
LDX #0100
LDA $1400
STA $1402
LDA ,X
DECB
ORA #%10000000
ANDB #$FE
JMP $0200
# 2 - Trouvez les codes machines de chaque instruction et écrivez une brève description de
ce que fait l'instruction dans la colonne commentaire.
Code machine Mnémonique Commentaire
Opération Opérande
CLRA
INCB
DECA
LSLA
ROLB
COMA
# 3 - Réalisez un programme qui fait un 'ET' entre le contenu de la case $0300 et la case
$0301. Le résultat doit être placé dans la case $0302. L'origine du programme est à
l'adresse $0200. L’arrêt du programme s’effectue par un retour au moniteur.
Mnémonique Commentaire
Opcode Opérande
ORG $0200
-----------------------
BARGRAF EQU $4000
TABLEAU DB 1,2,3,4,5
*-----------------------
DEBUT LDX #TABLEAU
BSR SENDCODE
STOP BRA STOP
*-----------------------
SENDCODE LDA ,X+
CMPA #4
BEQ SEND_FIN
STA BARGRAF
BRA SENDCODE
SEN_FIN RTS
*-----------------------
END
réponse: X=_______
réponse: __________________________
réponse: __________________________
réponse: __________________________
# 9 - Quelles sont les six étapes nécessaire pour la réalisation d’un programme?
a) _______________________
b) _______________________
c) _______________________
d) _______________________
e) _______________________
f) _______________________
Réponse:
_________________________________________
Réponse:
_________________________________________
Réponse:
_________________________________________
# 14 - Supposez que le registre S est initialisé avec la valeur $0080 et que l'instruction
suivante est exécutée:
PSHS A, X
a) Que vaudra le registre S après l'instruction ?
Réponse: _______________
Réponse: _______________
# 15 - Sachant qu'au départ : S = $2000 et que l'instruction est: PSHS Y, X. À quelle adresse
sera déposée la partie LSB du registre X?
Réponse: ________________
Réponse: __________
*------------------------
* Routine de conversion ASCII-->HEXA
*
ASCHEX SUBA #$30
CMPA #9
BLS ASC1
SUBA #7
ASC1 RTS
*------------------------
a) paramètre(s) d'entrée(s) = ___________________________
b) paramètre(s) de sortie(s)= ___________________________
c) registre(s) affecté(s) = ___________________________