Académique Documents
Professionnel Documents
Culture Documents
COURS EXPO
Microprocesseur 6809
(2° GIM )
Mr KHATORY
Naissance du microprocesseur
1
18/11/2018
39
XTAL
38 EXTAL
Horloge A0
35 Bus
Q 8
34 des
E
33
23 adresses
DMA/BREQ
5
BS
6
BA A15
2
Bus de commande NMI
3
IRQ D0 24
4 Bus
FIRQ
des
40 HALT 31
37
données
RESET
36 D7
Signaux MRDY
mémoire 32
R/ W
BROCHAGE DU MC 6809
2
18/11/2018
0V +5V
39
XTAL
38 EXTAL
Horloge A0
35 Bus
Q 8
34 des
E
33
23 adresses
DMA/BREQ
5
BS
6
BA A15
2
Bus de commande NMI
3
IRQ D0 24
4 Bus
FIRQ
des
40 HALT 31
37
données
RESET
36 D7
Signaux MRDY
mémoire 32
R/ W
BROCHAGE DU MC 6809
Architecture 6809
16 bits
8 bits 8 bits
Accumulateurs. A B
Manipulation
des données D
Registres X
d'index
Y
Pointeurs de U
pile
S
PC Compteur programme
3
18/11/2018
Architecture 6809
Registre de page
DP
Architecture 6809
Accumulateurs : A, B et D
Les calculs arithmétiques et 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.
D= A B (Concaténation de A et B)
Registre A Registre B
UAL
4
18/11/2018
Architecture 6809
UAL
Architecture 6809
UAL
5
18/11/2018
Architecture 6809
Registre A Registre B
11
Architecture 6809
DP
Registre de page: DP
6
18/11/2018
Architecture 6809
DP
Registre de codes condition: CCR
Le registre codes condition (8 bits) définit à tout instant l'état
des indicateurs du processeur.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
E F H I N Z V C 13
Architecture 6809
H Demi-retenue
7
18/11/2018
Architecture 6809
H Demi-retenue
Architecture 6809
H Demi-retenue
8
18/11/2018
Architecture 6809
H Demi-retenue
Architecture 6809
H Demi-retenue
9
18/11/2018
Architecture 6809
Architecture 6809
H Demi-retenue
10
18/11/2018
Architecture 6809
H Demi-retenue
Architecture 6809
H Demi-retenue
11
18/11/2018
Mode d’adressage
Instruction (mnémoniques)
Opération Opérande
LDA $2000
Charger (Load ) dans
le registre A
23
Mode d’adressage
L'adressage inhérent est utilisé par les instructions qui agissent sur les
registres internes du MPU et non sur la mémoire. Il existe deux types de
mode d'adressage inhérent :
Exemple:
ABX addition de l'accumulateur B à l'index X.
24
12
18/11/2018
Mode d’adressage
Exemple:
ABX addition de l'accumulateur B à l'index X.
X (B) + (X)
MPU Mémoire
PC ADR
ADR+1 ADR+ 1 Code Opération
de ABX
D A
B 14
3A ADR
X 2008
201C 2008 + 14
Y
DP
7 6 5 4 3 2 1 0
CCR
Mode d’adressage
Attente d'interruption.
26
13
18/11/2018
Mode d’adressage
MPU Mémoire
PC ADR
ADR +2 ADR+ 2
D A
B
1F ADR
X
34 ADR+1
Y
ADR+2
S 1000
U 1000
DP
7 6 5 4 3 2 1 0
Mode d’adressage
Post-octet transfert/échange :
code Registre
0000 D Code Opération
0001 X 1F
0010 Y
0011 U TFR U,S transfert de U dans S
0100 S
Post-Octet
0101 PC 34
1000 A
1001 B
1010 CCR
1011 DP
28
14
18/11/2018
Mode d’adressage
Post-octet transfert/échange :
code Registre
0000 D Code Opération
0001 X 1F
0010 Y
0011 U TFR U,S transfert de U dans S
0100 S
3 4 Post-Octet
0101 PC 34
1000 A
1001 B
1010 CCR
1011 DP
29
Mode d’adressage
MPU Mémoire
PC ADR
ADR+2 ADR+ 2
34 ADR
16 ADR + 1
A aa ADR + 2
D
B bb
X xx x’x’
aa SSS’S’ -4
Y
bb SSS’S’ -3
S ss SSS’S’-4 s’s’ SSS’S’ - 4 xx SSS’S’ -2
U x’x’ SSS’S’ -1
DP SSS’S’
7 6 5 4 3 2 1 0
CCR Adressage inhérent paramétré 30
Instructions d’accès aux piles
15
18/11/2018
EMPILEMENT
Mnémoniques :
PSHS liste explicite de registres à empiler
ou (implicitement)
PSHS #$xy
b7 b6 b5 b4 b3 b2 b1 b0
(#$xy) PC U Y X DP B A CCR
=
Mode d’adressage
Attente d'interruption: le premier octet est associé à l'instruction CWAY, le second
sert à masquer ou à valider les interruptions.
EX :CWAY # $ FF attente d'interruption
MPU Mémoire
3C ADR
PC ADR
ADR+2 ADR+ 2 FF ADR + 1
ADR + 2
A aa
D
CCR SSS’S’ -C
B bb
aa SSS’S’ -B
bb SSS’S’ -A
X xx x’x’ pp SSS’S’ -9
Y yy y’y’ xx SSS’S’ -8
SSS’S’ - C
S ss SSSS’-C s’s’ x’x’ SSS’S’ -7
U uu u’u’ yy SSS’S’ -6
pp y’y’ SSS’S’ -5
DP
Masque INT IRQ uu SSS’S’ -4
7 6 5 4 3 2 1 0 u’u’ SSS’S’ -3
7 6 5 4 3 2 1 0
CCR x x x x x x x x ADR +2 SSS’S’ -2
CCR 1 1 x 1 x x x x
SSS’S’ -1
16
18/11/2018
Mode d’adressage
(RECAP)
Mode d’adressage
Dans ce mode d'adressage, le code opératoire 8 bit est suivi d'une valeur
qui est l'opérande de l'instruction.
Ce type d'adressage permet de charger les registres internes du
microprocesseur avec la valeur de l'opérande.
Le symbole « # » signifie immédiat dans la syntaxe assembleur. Il existe
trois types d’instructions dans ce mode d’adressage :
34
17
18/11/2018
MPU Mémoire
$15 86 ADR
X
15 ADR+1
Y
ADR+2
S
U
DP
7 6 5 4 3 2 1 0
CCR Adressage immédiat
Instructions sur deux octets
35
36
18
18/11/2018
ADR + 3
PC ADR
ADR +3 Code Opération
ADDD
D A 31 11
B 22
27 $1122+$2005 C3 ADR
20 ADR+1
X
05 ADR+2
Y
ADR+3
S
DP
E F H I N Z V C
37
38
19
18/11/2018
MPU Mémoire
ADR + 4 Octet
PC ADR
ADR +4 supplémentaire
D A
B
10 ADR
$10
8E ADR+1
X
20 ADR+2
Y 2008
08 ADR+3
S
ADR+4
U $2008
DP
E F H I N Z V C
39
20
18/11/2018
Mode d’adressage
DP ¨PF
42
21
18/11/2018
MPU Mémoire
PC ADR ADR + 2
ADR +2
96 ADR
A 08 ADR+1
D 11
ADR+2
B
S
11 20 08
U
DP 20
E F H I N Z V C
44
22
18/11/2018
MPU Mémoire
PC ADR
ADR+3 ADR + 3
10 ADR
A 9E ADR+1
D
B 05 ADR+2
X
Y 1122
1122
S
11 20 05
U
22 20 06
DP 20
E F H I N Z V C
CCR Adressage direct
Instructions sur trois octets
45
23
18/11/2018
Mode d’adressage
Le symbole « > » est une directive assembleur qui force l’adressage étendu.
Il existe deux types d’instructions dans ce mode d’adressage
47
MPU Mémoire
PC ADR
ADR+3 ADR + 3
B6 ADR
A 11 21 ADR+1
D
B A5 ADR+2
X $11
Y
S
11 21 A5
U
DP
E F H I N Z V C
CCR Adressage étendu
Instructions sur trois octets
48
24
18/11/2018
49
MPU Mémoire
Pré-octet
PC ADR
ADR+4 ADR + 4
10 ADR
A BE ADR+1
D
B 2C ADR+2
B5 ADR+3
X $1122 ADR+4
Y 1122
S
U 11 2C B5
DP 22 2C B6
E F H I N Z V C
CCR Adressage étendu
Instructions sur quatre octets
50
25
18/11/2018
52
26
18/11/2018
D A 11 ADR+2
20
B
00 ADR+3
ADR+4
X
$11
Y
30 2000
S
00 2001
U
DP
11 3000
E F H I N Z V C
CCR
VI. Mode adressage relatif court mode d'adressage est réservé pour BHS FIN
les instructions de branchement (
(déplacement ± 7 bits)
VII. Mode adressage relatif long mode d'adressage est réservé pour LBPL ARRET
les instructions de branchement (
(déplacement ± 15 bits)
VIII. Mode adressage indexé
IX. Mode adressage indexé indirect
27
18/11/2018
LDB $20, X
Instruction déplacement Base : X ou Y ou U ou S ou PC
LDA , Y+
Toutes ces options sont sélectionnées par le post-octet
qui suit le code opératoire.
56
28
18/11/2018
57
BASE R b6 b5
Index X 0 0
Index Y 0 1
Pointeur U 1 0
Pointeur S 1 1
Indifférent, la sélection de la base PC se fait à laide 58
Compteur Programme
des bits 2 et 3 (1,1)
29
18/11/2018
59
60
30
18/11/2018
Exemple :
LDA ,X chargement de A avec la valeur dont l’adresse est le contenu de
l’index X.
62
31
18/11/2018
MPU Mémoire
Post-
octet
PC ADR ADR + 2
ADR +2
A6 ADR
A 84 ADR+1
D 11
B ADR+2
X xxxx 11
U
11 xxxx
DP
E F H I N Z V C
Déplacement nul
32
18/11/2018
LDA ,X+ chargement de A avec la valeur dont l’adresse est le contenu de l’index X.post
incrémentation par un de X
MPU Mémoire
Post-
octet
PC ADR ADR + 2
ADR +2
A6 ADR
A 80 ADR+1
D 11
B ADR+2
11
X xxxx xxxx+1
S
xxxx+1
U
11 xxxx
DP
E F H I N Z V C
A AE ADR+1
D
B 83 ADR+2
ADR+3
X xxxx xxxx-2 xxxx -2
Y 1122
U
11 xxxx- 2
DP 1122
22 xxxx - 1
xxxx
E F H I N Z V C
Auto-incrémentation/Décrémentaion(3 octets)
1 0 0 0 0 0 1 1
Dans ce cas le post-octet est égale $83 :
X Double
•b7=1 b4=0 signifie que l’adressage est indexé direct
pré_décrémentation
•b6.b5=0.0 l’index est X
•b3.b2.b1.b0=0.0.1.1 double pré décrémentation. Adressage indexé direct 66
NB: Le mode auto-incrémentation/décrémentation par deux est utilisé pour gérer des tables d’adresses
33
18/11/2018
68
34
18/11/2018
Conclusion
Le microprocesseur 6809 offre de nombreuses possibilités d’adressage
indexé (simple ou indirect) suivant le type de base et de déplacement choisi.
Le tableau suivant résume toutes ces possibilités :
LDB $20, X
Instruction déplacement Base : X ou Y ou U ou S ou PC
Index X
Index Y
Pointeur S
Pointeur U
PC X X X X X X X X X
Tableau : combinaisons des adressages indexé
: indexé avec indirection possible
: indexé avec indirection impossible
X : pas d’adressage indexé
70
35
18/11/2018
Conclusion
Le microprocesseur 6809 offre de nombreuses possibilités d’adressage
indexé (simple ou indirect) suivant le type de base et de déplacement choisi.
Le tableau suivant résume toutes ces possibilités :
LDB $20, X
Instruction déplacement Base : X ou Y ou U ou S ou PC
Index X
Index Y
Pointeur S
Pointeur U
PC X X X X X X X X X
Tableau : combinaisons des adressages indexé
: indexé avec indirection possible
: indexé avec indirection impossible
X : pas d’adressage indexé
71
Conclusion
LDB $20, X
Instruction déplacement Base : PC
36
18/11/2018
73
Classification des
instructions
74
37
18/11/2018
75
76
38
18/11/2018
Instruction Fonction
ADD Addition du contenu mémoire à un accumulateur
ADC Addition du contenu mémoire à un accumulateur avec retenue
ABX Addition de l'accumulateur B à X(Non signé)
DAA Ajustement décimal de l'accumulateur A
MUL Multiplication de A par B (Non signé)
SUB Soustraction du contenu mémoire à l'accumulateur
SBC Soustraction du contenu mémoire à l'accumulateur avec retenue
SEX Extension de signe de l'accumulateur B à l'accumulateur A
77
Instruction Fonction
ASR Décalage arithmétique à droite
LSL ou ASL Décalage logique ou arithmétique à gauche
LSR Décalage logique à droite
ROL Rotation à gauche
ROR Rotation à droite
78
39
18/11/2018
Instruction Fonction
AND « ET logique » entre mémoire et registre interne
EOR « OU Exclusif » entre mémoire et registre interne
OR « OU logique» entre mémoire et registre interne
79
Instruction Fonction
CLR Remise à zéro du contenu mémoire ou de l’accumulateur
DEC Décrémentation du contenu mémoire ou de l’accumulateur
INC Incrémentation du contenu mémoire ou de l’accumulateur
NOP Pas d’opération. Incrémentation du compteur programme
COM Complément à un du contenu mémoire ou de l’accumulateur
NEG Complément à deux du contenu mémoire ou de
l’accumulateur
80
40
18/11/2018
Instruction Fonction
LD Chargement des registres internes du MPU
ST Mise en mémoire des registres internes du MPU
81
Instruction Fonction
PSH Empilement de(s) registre(s) sur la pile
PUL Dépilement de(s) registre(s)
82
41
18/11/2018
Instruction Fonction
EXB Echange du contenu de deux registres
TRF Transfert de registre à registre
83
Ces instructions sont utilisées pour réaliser des tests de bits et des comparaisons. Les contenus
mémoire et accumulateur ne sont pas modifiés. Le résultat de ces instructions agit uniquement
sur les indicateurs du registre d’état, il n’entraîne pas de rupture de séquence( aucun
branchement n’est effectué).
Instruction Fonction
BIT Test de bits entre accumulateur et contenu mémoire
CMP Comparaison du contenu mémoire (1 ou 2 octets) avec un registre interne (8 ou 16
bits) du microprocesseur
TST Test du contenu mémoire ou d’un accumulateur
84
42
18/11/2018
Ces instructions permettent de réaliser des branchements conditionnels. Les tests s’effectuent sur
4 indicateurs du registre d’état :
- N : Bit de signe ou bit « négatif » (bit 3 du CCR) ;
- Z : indique si le résultat des opérations est égal ou différent de zéro (bit 2 du CCR) ;
- V : indicateur de débordement (bit 1 du CCR) ;
- C : bit de retenue (bit 0 du CCR)
Instruction Fonction
(L)BCC ou (L)BHS Branchement si pas de retenue
(L)BCS ou (L)BLO Branchement si retenue
(L) BEQ Branchement si égale à zéro
(L)BNE Branchement si différent de zéro
(L)BGE Branchement si supérieur ou égal à zéro
(L)BLT Branchement si inférieur (signé)
(L)BGT Branchement si supérieur (signé)
(L)BLE Branchement si inférieur ou égal (signé)
(L)BHI Branchement si supérieur (non signé)
(L)BLS Branchement si inférieur ou égal (non signé)
(L)BMI Branchement si négatif
(L)BPL Branchement si positif
(L)BVC Branchement si pas de débordement
(L)BVS Branchement si débordement
85
N.B : La lettre (L) précédant le mnémonique précise qu’il s’agit d’un déplacement long (16 bits).
Ces instructions entraînent des ruptures de séquence, sans conditions préalables. Il faut toutefois
différencier les instructions de branchement qui sont suivies d’un déplacement long ou court, des
instructions de saut qui sont, elles, suivies de l ‘adresse effective.
Instruction Fonction
(L)BRA Branchement inconditionnel
(L)BRN Non branchement (non opération)
(L) BSR Branchement à un sous programme
JMP Saut inconditionnel à une adresse effective
JSR Saut à un sous programme
RTS Retour de sous programme
86
43
18/11/2018
Instruction Fonction
LEA Chargement d’un registre pointeur avec une adresse effective
Fonction
Instruction
CWAY Validation puis attente d’une interruption
SYNC Synchronisation du logiciel avec une ligne d’interruption
RTI Retour du sous programme d’interruption
SW1/SW2/SW3 Interruption logicielle
87
FIN
88
44