Partie 2
Partie 2
Microprocesseur
6809
76
76
Organisation matérielle du 6809
77
Organisation matérielle du 6809
78
Organisation matérielle du 6809
79
Présentation du brochage
80
Présentation du brochage
Le bus de contrôle
La broche Read/ Write: Cette broche indique le sens de transfert des
données sur le bus des données.
• R/ W = 1 lecture en cours (D 0 - D 7 sont des entrées)
• R/ W = 0 écriture en cours (D 0 - D 7 sont des sorties)
81
Présentation du brochage
82
Présentation du brochage
83
Présentation du brochage
84
Présentation du brochage
85
Présentation du brochage
1er cas :
Le microprocesseur est en fonctionnement normal, il gère les bus d'adresses et de
données.
2ème cas :
le microprocesseur est en phase de reconnaissance d'interruption pendant deux cycles.
Cet état correspond à la recherche des vecteurs d'interruption : Reset, NMI, IRQ, SW1,2
et 3. (SW=Software )
3ème cas :
Ce signal apparaît lorsque le microprocesseur rencontre l'instruction de synchronisation
externe (niveau bas sur SYNC). Il attend alors cette synchronisation sur une des lignes
d'interruption. Les bus sont en haute impédance pendant ce temps.
Dernier cas :
Correspond à l'arrêt du microprocesseur (niveau bas sur HALT).
Le microprocesseur laisse la gestion des bus des données et des adresses à un circuit
annexe (contrôleur de DMA). Les bus sont en haute impédance. La ligne BA au niveau
haut indique que les bus sont en haute impédance.
86
Présentation du brochage
87
Architecture 6809
88
Architecture 6809
89
Architecture 6809
• Accumulateurs : A, B et D
• Les calculs arithmétiques et les instructions de comparaison ainsi que les
manipulations de données se font grâce aux accumulateurs A et B.
• Ces deux registres sont interchangeables sauf pour quelques instructions
(ABX, DAA) et les opérations sur 16 bits.
• ABX : Addition de l'accumulateur B à X(Non signé)
• DAA : Ajustement décimal de l'accumulateur A
90
Architecture 6809
91
Architecture 6809
92
Architecture 6809
93
Architecture 6809
• Registre de page: DP
• Ce registre (8 bits) est prévu pour étendre les possibilités d'adressage
direct à tout l'espace mémoire, sous contrôle du logiciel.
94
Architecture 6809
95
Architecture 6809
96
Microprocesseur 6809
MODE D’ADRESSAGE
ET
PROGRAMMATION EN
ASSEMBLEUR
97
Mode d’adressage
99
Structure d'une instruction
101
Modes d'adressage
102
1.Mode d'adressage inhérent
103
1.Mode d'adressage inhérent
104
1.Mode d'adressage inhérent
105
1.Mode d'adressage inhérent
106
1.Mode d'adressage inhérent
107
1.Mode d'adressage inhérent
108
1.Mode d'adressage inhérent
• Mnémoniques d’empilement
• PSHS liste explicite de registres à empiler ou (implicitement)
• PSHS #$xy
109
1.Mode d'adressage inhérent
• Mnémoniques d’empilement
• PSHS liste explicite de registres à empiler ou (implicitement)
• Exemple: PSHS #$FF
110
1.Mode d'adressage inhérent
Attente d'interruption:
le premier octet est associé à l'instruction CWAI, le second sert à masquer ou à
valider les interruptions.
Exemple : CWAI # $ FF attente d'interruption
111
2. Mode d'adressage immédiat
112
2. Mode d'adressage immédiat
113
2. Mode d'adressage immédiat
• Exemple : LDA #$15 charger la valeur $15 dans l’accumulateur A. Le
premier octet contient le code opératoire
114
2. Mode d'adressage immédiat
115
2. Mode d'adressage immédiat
• Exemple : ADDD #$2005 addition du contenu de l’accumulateur D et de
$2005, le résultat se trouve dans D.
116
2. Mode d'adressage immédiat
117
2. Mode d'adressage immédiat
• Exemple: LDY #$2008 charger l’index Y avec la valeur $2008
118
3. Mode d'adressage direct
120
3. Mode d'adressage direct
Instructions sur deux octets
• Le premier octet définit le code opératoire,
• le second définit le poids faible de l’adresse effective.
Exemple :LDA $08 ou LDA < $08 Charge l'Accumulateur A avec le
contenu dont l'adresse est formée par [DP] et l'opérande
chargement de l’accumulateur A avec le contenu de $ 2008 ( DP= $20)
121
3. Mode d'adressage direct
122
3. Mode d'adressage direct
Instructions sur trois octets
Exemple : LDY $05 ou LDY < $05 chargement du registre Y avec le
contenu de $2005/06 (DP=$20)
123
4. Mode d'adressage étendu (direct)
124
4. Mode d'adressage étendu (direct)
125
4. Mode d'adressage étendu (direct)
126
4. Mode d'adressage étendu (direct)
127
5. Mode d'adressage étendu indirect
128
5. Mode d'adressage étendu indirect
130
5. Mode d'adressage étendu indirect
131
Exécution d ’un programme en 6809: Présentation du programme
Exemple
Le programme Mémoire données
Mémoire programme
FE00: 86 0000:
FE01:2D 0001:
FE02:8B 0002:
LDA #$45 86 2D 0003:
FE03:5A
ADDA #$5A 8B 5A 0004:
FE04:B7
STA $0003 B7 00 03
FE05:00 0005:
FE06:03
FE07:
132
A Exécution d ’un programme en 6809:le programme en langage assembleur est codée en mémoire par des valeurs hexadécimales
Le microprocesseur
Bus de données
A B
N (Négatif)
X
Registre d ’instructions Z (Zéro)
Y
V (Débord.)
S ALU
Décodeur C (Retenue)
U
PC FE00
Contrôleur Séquenceur
Bus d’adresses
Le microprocesseur
Bus de données
A B
86 X
N 0 (Négatif)
Bus d’adresses
Le microprocesseur
Bus de données
A 2D B
86 N 0 (Négatif)
X
Registre d ’instructions Z 0 (Zéro)
Y
V 0 (Débord.)
S ALU
Décodeur C 0 (Retenue)
U
PC FE02
Contrôleur Séquenceur
Bus d’adresses
Le microprocesseur
Bus de données
2D
A 2D B
8B N 0 (Négatif)
X
Registre d ’instructions Z 0 (Zéro)
Y
V 0 (Débord.)
S ALU
Décodeur C 0 (Retenue)
U
PC FE03
Contrôleur Séquenceur
Bus d’adresses
Le microprocesseur
Bus de données
2D 5A
A 87 B
8B + N 1 (Négatif)
X
Registre d ’instructions Z 0 (Zéro)
Y
V 1 (Débord.)
S ALU
Décodeur C 0 (Retenue)
U 87
PC FE04
Contrôleur Séquenceur
Bus d’adresses
Le microprocesseur
Bus de données
A 87 B
B7 N 0 (Négatif)
X
Registre d ’instructions Z 0 (Zéro)
Y
V 0 (Débord.)
S ALU
Décodeur C 0 (Retenue)
U
PC FE05
Contrôleur Séquenceur
Bus d’adresses
Le microprocesseur
Bus de données
A 87 B
B7 00 N 0 (Négatif)
X
Registre d ’instructions Z 0 (Zéro)
Y
V 0 (Débord.)
S ALU
Décodeur C 0 (Retenue)
U
PC FE06
Contrôleur Séquenceur
Bus d’adresses
Le microprocesseur
Bus de données 87
A 87 B
B7 00 03 N 0 (Négatif)
X
Registre d ’instructions Z 0 (Zéro)
Y
V 0 (Débord.)
S ALU
Décodeur C 0 (Retenue)
U
PC FE07
Contrôleur Séquenceur
Temps d’exécution
Tcycle= 4 .Thorloge (pour le 6809) du programme
141
Fhorloge = 4MHz (quartz de 4MHz)
Thorloge= 1/4 μs Tcycle= 1 μs
9 μs