Vous êtes sur la page 1sur 44

18/11/2018

COURS EXPO
Microprocesseur 6809
(2° GIM )

Mr KHATORY

Naissance du microprocesseur

• Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur. Dans une


publicité de la revue Electronic News, la firme Intel annonce «A microprogrammable
computer on a chip» (un ordinateur programmable dans une puce).

1
18/11/2018

Organisation matérielle du 6809

Le microprocesseur 6809 est un processeur 8 bits dont l'organisation


interne est orientée 16 bits. Il est fabriqué en technologie MOS et se
présente sous la forme d'un boîtier 40 broches.

Organisation matérielle du 6809

Le microprocesseur 6809 est un processeur 8 bits dont l'organisation


interne est orientée 16 bits. Il est fabriqué en technologie MOS et se
présente sous la forme d'un boîtier 40 broches.
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

2
18/11/2018

Organisation matérielle du 6809

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

Le microprocesseur 6809 comporte NEUF registres internes


programmables accessibles par l'utilisateur:

16 bits
8 bits 8 bits
Accumulateurs. A B
Manipulation
des données D

Registres X
d'index
Y

Pointeurs de U
pile
S

DP Registre page direct

PC Compteur programme

CCR Registre d’état

3
18/11/2018

Architecture 6809

Pointeur de Pile Pointeur de Pile


S
U
Registre A Registre B

Registre..d'état… UAL Compteur Ordinal


CCR PC

Registre d'index Registre d'index


X Y

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

Pointeur de Pile Pointeur de Pile


S
U
Registre A Registre B

UAL

Registre d'index Registre d'index


X Y
 Registres pointeurs: S, U, X, Y

 Registres d'index : X,Y

Ces deux pointeurs d'utilisation parfaitement identique sont utilisés


dans les modes d'adressage indexé. Le contenu des ces registres (16
bits) permet de pointer des données.
9

Architecture 6809

Pointeur de Pile Pointeur de Pile


S
U
Registre A Registre B

UAL

Registre d'index Registre d'index


X
Registres d'index : X,Y
Le pointeur de pile S (Système) est utilisée par le
microprocesseur pour gérer le sauvegarde de ses registres internes
pendant l'exécution de programmes d'interruptions ou de sous
programmes. Le pointeur de pile U (Utilisateur) est utilisé uniquement
par le programmeur pour réaliser des passages d'arguments de ou
vers des sous programmes.
10

5
18/11/2018

Architecture 6809

Registre A Registre B

UAL Compteur Ordinal


PC

Registre compteur programme PC

Le contenu de ce registre (16 bits) détermine l'adresse de


l'instruction que doit exécuter le processeur. Il pointe en permanence
l'adresse de la prochaine instruction à exécuter. Dans certain cas, ce
compteur programme peut être utilisé comme un index.

11

Architecture 6809

Pointeur de Pile Pointeur de Pile


S
U
Registre A Registre B

UAL Compteur Ordinal


PC

Registre d'index Registre d'index


X Y

DP

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.
12

6
18/11/2018

Architecture 6809

Pointeur de Pile Pointeur de Pile


S
U
Registre A Registre B

CCR UAL Compteur Ordinal


PC

Registre d'index Registre d'index


X Y

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

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 14
sauvegardé dans la pile

7
18/11/2018

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 15
sauvegardé dans la pile

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 16
sauvegardé dans la pile

8
18/11/2018

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 17
sauvegardé dans la pile

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 18
sauvegardé dans la pile

9
18/11/2018

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue Lors de la somme sur (4bits)

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 19
sauvegardé dans la pile

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 20
sauvegardé dans la pile

10
18/11/2018

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 21
sauvegardé dans la pile

Architecture 6809

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


E F H I N Z V C

C Retenue (Carry) Positionné lors d'une opération arithmétique


Dépassement (oVerflow) Positionné si le résultat( en complément à
deux) d'une opération arithmétique
V déborde

Zéro Mis à 1 si le résultat de l'opération


Z
précédente est nul
N Négatif Indique un résultat négatif.
Masque d'interruptions IRQ Lorsqu'il est à 1, masque les interruptions
I
IRQ

H Demi-retenue

Masque d'interruptions FIRQ Lorsqu'il est à 1, masque les interruptions


F
FIRQ
Etat de sauvegarde Si à 1, tout le contexte du processeur est
E 22
sauvegardé dans la pile

11
18/11/2018

Mode d’adressage

Le MPU possèdent 59 instructions de base mais en conjonction avec les


NEUF modes d'adressage disponibles, on parvient à 1 464 possibilités

STRUCTURE D'UNE INSTRUCTION

Elle comporte de un à 5 octets ( dépend du mode d'adressage).


 Le premier (parfois le deuxième) octet indique l'action à effectuer
correspond au code de l'instruction,
 Les octets suivants précisent les opérandes ou sur quelques registres
cette action agira.

Instruction (mnémoniques)
Opération Opérande
LDA $2000
Charger (Load ) dans
le registre A

LDA $2000  code en hexadécimal = B6 2000 ( 3 octets)

23

Mode d’adressage

Le MPU possèdent 59 instructions de base mais en conjonction avec les


NEUF modes d'adressage disponibles, on parvient à 1 464 possibilités

1.mode d'adressage inhérent

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 :

Adressage inhérent simple


Le code opération contient toute l'information nécessaire à l'exécution de
l'instruction.
Ces instructions codées sur un octet sont: ABX, INCB,NEGA,…..

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

Adressage inhérent simple


25

Mode d’adressage

Adressage inhérent paramétré

L'instruction comporte un octet supplémentaire permettant de préciser les


opérandes intervenant dans l'instruction. La présence de cet octet
supplémentaire est indispensable pour les instructions de type:

Échange et transfert de registres;

Instructions d'accès aux piles;

Attente d'interruption.

26

13
18/11/2018

Mode d’adressage

Échange et transfert de registres: le premier octet détermine le code opération


pur, le second les registres source et destination:
Ex :TFR U,S  transfert de U dans S

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

CCR Adressage inhérent paramétré


Échange et transfert des données
27

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

 Instructions d'accès aux piles: le premier octet détermine le code


opératoire pur, le post-octet: les registres concernés par l'accès à la
pile.
Ex :PSHS A, B, X  sauvegarde dans la pile de A, B, X

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
=

Ordre d’empilement des registres

Si bi (0 i  7) = 1, alors le registre correspondant est empilé dans la pile S.


Ainsi la donnée immédiate #$xy permet de sélectionner le(s) registre(s) à
sauvegarder.
0 0 0 1 0 1 1 0
X B A
Exemple: PSHS A,B,X  PSHS #$16
aa
bb
xx
31
x’x’

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

Sauvegarde Masque INT SSS’S’


FIRQ
Adressage inhérent paramétré
Attente d’interruption 32

16
18/11/2018

Mode d’adressage
(RECAP)

Mode adressage Exemple


I. mode d'adressage inhérent 1. inhérent simple ABX ; NEG…
2. inhérent paramétré
a. Echange, transfert registre a.TRF U,S
b. Accès aux piles b. PSHS A,B,X
c. attente interruptions c. CWAI #$FF
II. Mode adressage immédiat
III. Mode adressage Direct
IV. Mode adressage étendu
V. Mode adressage étendu
indirect
VI. Mode adressage relatif
court
VII. Mode adressage relatif
long
VIII. Mode adressage indexé
IX. Mode adressage indexé
indirect

Mode d’adressage

2. Mode d'adressage immédiat

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 :

Instructions sur deux octets

Le premier octet contient le code opératoire, le second la constante 8 bits.


Ce type d’instruction est réservé pour travailler sur les registres 8 bits du
microprocesseur.

34

17
18/11/2018

Ex : LDA #$15  charger la valeur $15 dans l’accumulateur A. Le


premier octet contient le code opératoire

MPU Mémoire

PC ADR ADR+2 ADR + 2


Code Opération
LDA
D A 15
B

$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

Instructions sur trois octets

Le premier octet contient le code opératoire, le second et le troisième


contiennent la constante 16 bits. Ce type d’instructions est réservé
pour travailler sur les registres 16 bits du microprocesseur.

Ex : ADDD #$2005  addition du contenu de l’accumulateur D


et de $2005, le résultat se trouve dans D.

36

18
18/11/2018

Ex : ADDD #$2005  addition du contenu de l’accumulateur D


et de $2005, le résultat se trouve dans D.
MPU Mémoire

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

CCR Adressage immédiat

Instructions sur trois octets

37

Instructions sur quatre octets

Dans ce type d’instruction, le code opératoire utilise deux octets


mémoire, la constante également. Le premier octet ($10) est
nécessaire pour les instructions : CMPD, CMPS, CMPU, CMPY,
LDS, LDY, STY, STS.

Ex :LDY #$2008  charger l’index Y avec la valeur $2008

38

19
18/11/2018

Ex :LDY # $2008  charger l’index Y avec la valeur $2008

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

CCR Adressage immédiat

Instructions sur quatre octets

39

Mode adressage Exemple


I. mode d'adressage inhérent 1. inhérent simple ABX ; NEG…
2. inhérent paramétré
a. Echange, transfert registre a.TRF U,S
b. Accès aux piles b. PSHS A,B,X
c. attente interruptions c. CWAI #$FF
II. Mode adressage immédiat 1. sur deux octets 1. LDA #$A0
2. sur trois octets 2. ADDD #$2009
3. sur quatre octets 3. LDY #$10B4
III. Mode adressage Direct
IV. Mode adressage étendu
V. Mode adressage étendu indirect

VI. Mode adressage relatif court


VII. Mode adressage relatif long

VIII. Mode adressage indexé

IX. Mode adressage indexé indirect

20
18/11/2018

Mode d’adressage

3. Mode d'adressage direct

 Le code opératoire (un ou 2 octet)


 L'opérande ( 1 octet ) : Poids Faible (8 bits) de l’Adresse Effective

DP ¨PF

Le symbole « < » est une directive assembleur qui force l’adressage


direct. Il existe deux types d’instructions dans ce mode d’adressage :

 Instructions sur deux octets

 Instructions sur trois octets


41

 Instructions sur deux octets


Le premier octet définit le code opératoire, le second le poids faible de
l’adresse effective.

Ex :LDA $08 ou LDA < $08 chargement de l’accumulateur A


avec le contenu de $ 2008 ( DP= $20)

42

21
18/11/2018

 Instructions sur deux octets


Le premier octet définit le code opératoire, le second les poids faible de
l’adresse effective.

Ex :LDA $08 ou LDA < $08 chargement de l’accumulateur A


avec le contenu de $ 2008 ( DP= $20)

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

CCR Adressage direct

Instructions sur deux octets 43

Instructions sur trois octets

 Le code opératoire (sur 2 octet)


 L'opérande ( 1 octet ) : Poids Faible (8 bits) de l’Adresse Effective

Ex : LDY $05 ou LDY < $05  chargement du registre Y avec le


contenu de $2005/06 (DP=$20)

44

22
18/11/2018

Ex : LDY $05 ou LDY < $05  chargement du registre Y avec le


contenu de $2005/06 (DP=$20)

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

Mode adressage Exemple


I. mode d'adressage inhérent 1. inhérent simple ABX ; NEG…
2. inhérent paramétré
a. Echange, transfert registre a.TRF U,S
b. Accès aux piles b. PSHS A,B,X
c. attente interruptions c. CWAI #$FF
II. Mode adressage immédiat 1. sur deux octets 1. LDA #$A0
2. sur trois octets 2. ADDD #$2009
3. sur quatre octets 3. LDY #$10B4
III. Mode adressage Direct 1.LDA $40 ou
1. sur deux octets LDA <$40
adresse = $2040 : (DP)=$20
2. LDY $50
2. sur trois octets
Adresse=$3050/51 (DP=30)
IV. Mode adressage étendu
V. Mode adressage étendu indirect

VI. Mode adressage relatif court


VII. Mode adressage relatif long

VIII. Mode adressage indexé


IX. Mode adressage indexé indirect

23
18/11/2018

Mode d’adressage

4. Mode d'adressage étendu


 Le code opératoire (sur 1 ou 2 octet)
 L'opérande ( 2 octet ) : Adresse Effective

Le symbole « > » est une directive assembleur qui force l’adressage étendu.
Il existe deux types d’instructions dans ce mode d’adressage

Instructions sur trois octets

Le premier octet (code opératoire) est suivi de l’adresse 16 bits


spécifiant l’emplacement de l’opérande (8 ou 16 bits).

 Le code opératoire (sur 1 octet)


 L'opérande ( 2 octet ) : Adresse Effective

47

Ex : LDA $21A5 ou LDA > $ 21A5  chargement de l’accumulateur A


avec le contenu de l’adresse $21A5

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

Mode d'adressage étendu

Instructions sur quatre octets


 Le code opératoire (sur 2 octet)
 L'opérande ( 2 octet ) : Adresse Effective

Le premier octet est seulement nécessaire pour les instructions qui


opèrent sur les pointeurs S et Y et sur les instructions de comparaison
CMPU, CMPD.

Ex :LDY $2CB5 ou LDY > $2CB5  chargement du registre Y Avec le


contenu de $2CB5

49

Ex :LDY $2CB5 ou LDY > $2CB5  chargement du registre Y Avec le


contenu de $2CB5/B6

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

Mode adressage Exemple


I. mode d'adressage inhérent 1. inhérent simple ABX ; NEG…
2. inhérent paramétré

II. Mode adressage immédiat 1. sur deux octets 1. LDA #$A0


2. sur trois octets 2. ADDD #$2009
3. sur quatre octets 3. LDY #$10B4
III. Mode adressage Direct 1.LDA $40 ou
1. sur deux octets LDA <$40
adresse = $2040 : (DP)=$20
2. LDY $50
2. sur trois octets
Adresse=$3050/51 (DP=30)
IV. Mode adressage étendu 1. sur trois octets 1. LDB $2145

2. sur quatre octets 2. CMPU $2009

V. Mode adressage étendu indirect

VI. Mode adressage relatif court


VII. Mode adressage relatif long

VIII. Mode adressage indexé


IX. Mode adressage indexé indirect

5. Mode d'adressage étendu indirect

Ce mode d’adressage est identique au mode d’adressage étendu mais


il possède en plus une indirection.
La notation assembleur " [ ]" force l'adressage étendu indirect.

 Le code opératoire (sur 2 ou 3 octets)


 L'opérande ( 2 octet ) : Adresse Effective

Instructions sur quatre octets


Les deux premiers octets déterminent le code opératoire ; code
opératoire de l’adressage étendu simple suivi d’un post-octet
déterminant l’indirection. Les 3ème et 4ème octets représentent
l’adresse de transit.

52

26
18/11/2018

Ex :LDA [$2000]  chargement de l’accumulateur avec le contenu dont


l’adresse se trouve en $2000 et $2001.

MPU Mémoire Post Octet

PC ADR ADR + 4 ADR


ADR+4
A6
9F ADR+1

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

Adressage étendu Indirect

Instructions sur quatre octets


53

Mode adressage Exemple


I. mode d'adressage inhérent 1. inhérent simple ABX ; NEG…
2. inhérent paramétré

II. Mode adressage immédiat 1. sur deux octets 1. LDA #$A0


2. sur trois octets 2. ADDD #$2009
3. sur quatre octets 3. LDY #$10B4
III. Mode adressage Direct 1.LDA $40 ou
1. sur deux octets
adresse = $2040 : (DP)=$20
2. LDY $50
2. sur trois octets
Adresse=$3050/51 (DP=30)
IV. Mode adressage étendu 1. sur trois octets 1. LDB $2145

2. sur quatre octets 2. CMPU $2009

V. Mode adressage étendu indirect 1. sur quatre octets LDA [$2009]

2. sur cinq octets LDY [$2009]

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

8. Mode d'adressage indexé

Le mode d’adressage indexé présente l’avantage de pouvoir travailler en


indirection. Dans ce cas on accède à l’adresse effective en transitant par
une adresse intermédiaire
Registre

ADRESSE EFFECTIVE = BASE + DEPLACEMENT

La puissance d’un mode d’adressage indexé est déterminée par


l’éventail des bases dont on dispose et par toutes les possibilités que
l’on a.

la base peut être soit


 un des deux registres d’index (X ou Y) ( ce qui est normale),
 mais aussi un des deux pointeurs de pile (U ou S)
 Ou ce qui est très intéressant, le compteur programme PC lui-même
(l’adressage est alors, un cas particulier de l’adressage relatif).
55

Pour ce qui est du déplacement, il y a de multiples possibilités:


celui-ci peut être nul, codé sur cinq, huit ou seize bits, ou variable
dans le cas de l’utilisation d’un accumulateur A, B ou D.

LDB $20, X
Instruction déplacement Base : X ou Y ou U ou S ou PC

Enfin, l’adressage indexé offre des possibilités d’auto-incrémentation


ou décrémentation de 1 ou de 2.

LDA , Y+
Toutes ces options sont sélectionnées par le post-octet
qui suit le code opératoire.

56

28
18/11/2018

Bit du registre post octet Mode d’adressage indexé


7 6 5 4 3 2 1 0 AE= , Base + Déplacement
0 R Déplacement AE= , R  4 bits
1 R 0 0 0 0 0 AE= , R +
1 R 0/1 0 0 0 1 AE= , R ++
1 R 0 0 0 1 0 AE= , - R
1 R 0/1 0 0 1 1 AE= , - -R
1 R 0/1 0 1 0 0 AE= , R  0
1 R 0/1 0 1 0 1 AE= , R Acc B
1 R 0/1 0 1 1 0 AE= , R Acc A
1 R 0/1 1 0 0 0 AE= , R  7 bits
1 R 0/1 1 0 0 1 AE= , R  15 bits
1 R 0/1 1 0 1 1 AE= , R  D (ACC A +Acc B)

1 0/1 1 1 0 0 AE= , PC  7 bits

1 0/1 1 1 0 1 AE= , PC  15 bits

post-octet qui suit le code opératoire.

57

Bit du registre post octet Mode d’adressage indexé


7 6 5 4 3 2 1 0 AE= , Base + Déplacement
0 R Déplacement AE= , R  4 bits
1 R 0 0 0 0 0 AE= , R +
1 R 0/1 0 0 0 1 AE= , R ++
1 R 0 0 0 1 0 AE= , - R
1 R 0/1 0 0 1 1 AE= , - -R
1 R 0/1 0 1 0 0 AE= , R  0
1 R 0/1 0 1 0 1 AE= , R Acc B
1 R 0/1 0 1 1 0 AE= , R Acc A
1 R 0/1 1 0 0 0 AE= , R  7 bits
1 R 0/1 1 0 0 1 AE= , R  15 bits
1 R 0/1 1 0 1 1 AE= , R  D (ACC A +Acc B)

1 0/1 1 1 0 0 AE= , PC  7 bits

1 0/1 1 1 0 1 AE= , PC  15 bits

Les bits 5 et 6 du post octet permettent de définir la base :

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

Bit du registre post octet Mode d’adressage indexé


7 6 5 4 3 2 1 0 AE= , Base + Déplacement
0 R Déplacement AE= , R  4 bits
1 R 0 0 0 0 0 AE= , R +
1 R 0/1 0 0 0 1 AE= , R ++
1 R 0 0 0 1 0 AE= , - R
1 R 0/1 0 0 1 1 AE= , - -R
1 R 0/1 0 1 0 0 AE= , R  0
1 R 0/1 0 1 0 1 AE= , R Acc B
1 R 0/1 0 1 1 0 AE= , R Acc A
1 R 0/1 1 0 0 0 AE= , R  7 bits
1 R 0/1 1 0 0 1 AE= , R  15 bits
1 R 0/1 1 0 1 1 AE= , R  D (ACC A +Acc B)

1 0/1 1 1 0 0 AE= , PC  7 bits

1 0/1 1 1 0 1 AE= , PC  15 bits

le bit 7 définit le rôle du bit4 :


• b7=0  b4 = bit de signe.
• b7=1  b4= choix du mode direct (b4=0) ou indirect (b4=1 );

59

Bit du registre post octet Mode d’adressage indexé


7 6 5 4 3 2 1 0 AE= , Base + Déplacement
0 R Déplacement AE= , R  4 bits
1 R 0 0 0 0 0 AE= , R +
1 R 0/1 0 0 0 1 AE= , R ++
1 R 0 0 0 1 0 AE= , - R
1 R 0/1 0 0 1 1 AE= , - -R
1 R 0/1 0 1 0 0 AE= , R  0
1 R 0/1 0 1 0 1 AE= , R Acc B
1 R 0/1 0 1 1 0 AE= , R Acc A
1 R 0/1 1 0 0 0 AE= , R  7 bits
1 R 0/1 1 0 0 1 AE= , R  15 bits
1 R 0/1 1 0 1 1 AE= , R  D (ACC A +Acc B)

1 0/1 1 1 0 0 AE= , PC  7 bits

1 0/1 1 1 0 1 AE= , PC  15 bits

1 R 0/1 1 1 1 1 AE= , Adresse

Les bits 0 à 3 définissent le champ du mode d’adressage.


Nous allons voir toutes les combinaisons possibles.

60

30
18/11/2018

Bit du registre post octet Mode d’adressage indexé


7 6 5 4 3 2 1 0 AE= , Base + Déplacement
0 R Déplacement AE= , R  4 bits Déplacement const
1 R 0 0 0 0 0 AE= , R +
1 R 0/1 0 0 0 1 AE= , R ++ Auto
1 R 0 0 0 1 0 AE= , - R Increm/Décrem
1 R 0/1 0 0 1 1 AE= , - -R
1 R 0/1 0 1 0 0 AE= , R  0 Déplacement nul
1 R 0/1 0 1 0 1 AE= , R Acc B
Dépl accumul
1 R 0/1 0 1 1 0 AE= , R Acc A
1 R 0/1 1 0 0 0 AE= , R  7 bits
Déplacement const
1 R 0/1 1 0 0 1 AE= , R  15 bits
1 R 0/1 1 0 1 1 AE= , R  D (ACC A +Acc B) Dépl accumul
1 0/1 1 1 0 0 AE= , PC  7 bits
Dépl PC
1 0/1 1 1 0 1 AE= , PC  15 bits

Les combinaisons possibles pour les modes d’adressage:


1 :Déplacement nul
2 :Auto Incrémentation/décrémentation
3 :Déplacement constant
4 :Déplacement accumulateur
61
5 :Base= compteur Programme PC

8.1 Mode d'adressage indexé. Déplacement nul.

Dans ce mode, le registre pointeur sélectionné contient l’adresse


effective des données devant être utilisées par l’instruction. Ce mode est le
mode indexé le plus rapide. Il existe deux types d’instructions :

Instructions sur deux octets :


Le code opératoire est suivi du post-octet précisant les options choisies pour
l’instruction en cours.

Exemple :
LDA ,X  chargement de A avec la valeur dont l’adresse est le contenu de
l’index X.

62

31
18/11/2018

LDA ,X  chargement de A avec la valeur dont l’adresse est le contenu de l’index X.

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

CCR Adressage indexé

Déplacement nul

Dans ce cas le post-octet est égale $84 :


1 0 0 0 0 1 0 0
•b7=1  b4=0 signifie que l’adressage est indexé direct
•b6.b5=0.0  l’index est X X Déplacement nul

•b3.b2.b1.b0=0.1.0.0  le déplacement est nul.


Adressage indexé direct
63

VIII. Mode adressage indexé 1. Déplacement NUL :


a. Sur deux octets LDB ,X
a. Sur trois octets LDY ,U
2. Auto Incrémentation/décrémentation :
a. Sur deux octets LDA ,Y+
a. Sur trois octets LDY ,--X
3. Déplacement constant :
a. Sur ± 4 bits ADDB -14,X
a. Sur ± 7 bits LDA $30,X
a. Sur ± 15 bits LDB $8000,Y
4 .Déplacement accumulateur :
a. Déplacement sur  7 bits. Acc A ou B LDA B,X

a. Déplacement sur  15 bits. Acc D LEAY D,X


5. Base=Compteur Programme PC
a. Déplacement sur  7 bits. LDB $20,PC
a. Déplacement sur  15 bits. ADDA $2000,PC
a. Etiquette localisée LEAX ETIQ,PC
IX. Mode adressage indexé 1. Déplacement nul LDA [,X]
indirect 2. Auto Incrémentation/décrémentation ADDB [,U++]
3. Déplacement constant LDA [$2000,X]
4 .Déplacement accumulateur LDU [D,PC]
LDA [$F000,PC]
5. Base=Compteur Programme PC
LDA [TABLE,PC] 64

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

CCR Adressage indexé Post Octet


Auto-incrémentation/Décrémentation(2 octets)

Dans ce cas le post-octet est égale $80 :


1 0 0 0 0 0 0 0
•b7=1  b4=0 signifie que l’adressage est indexé direct
•b6.b5=0.0  l’index est X X post_incrémentation

•b3.b2.b1.b0=0.0.0.0  mode post_incrémentation.


Adressage indexé direct
65
NB: Le mode auto-incrémentation/décrémentation par un est utilisé pour gérer des tables de données

Instructions sur trois octets :


Exemple :
LDY , --X  chargement de Y avec la valeur dont l’adresse de base est le contenu
de X – 2.
MPU Mémoire
Post-
octet
PC ADR ADR + 3
ADR+3
10 ADR

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

CCR Adressage indexé

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

VIII. Mode adressage indexé 1. Déplacement NUL :


a. Sur deux octets LDB ,X
a. Sur trois octets LDY ,U
2. Auto Incrémentation/décrémentation :
a. Sur deux octets LDA ,Y+
a. Sur trois octets LDY ,--X
3. Déplacement constant :
a. Sur ± 4 bits ADDB -14,X
a. Sur ± 7 bits LDA $30,X
a. Sur ± 15 bits LDB $8000,Y
4 .Déplacement accumulateur :
a. Déplacement sur  7 bits. Acc A ou B LDA B,X

a. Déplacement sur  15 bits. Acc D LEAY D,X


5. Base=Compteur Programme PC
a. Déplacement sur  7 bits. LDB $20,PC
a. Déplacement sur  15 bits. ADDA $2000,PC
a. Etiquette localisée LEAX ETIQ,PC
IX. Mode adressage indexé 1. Déplacement nul LDA [,X]
indirect 2. Auto Incrémentation/décrémentation ADDB [,U++]
3. Déplacement constant LDA [$2000,X]
4 .Déplacement accumulateur LDU [D,PC]
LDA [$F000,PC]
5. Base=Compteur Programme PC
LDA [TABLE,PC] 67

8.3 Mode d'adressage indexé. Déplacement constant

Dans ce mode d’adressage, l’adresse effective de l’opérande est la


somme du déplacement (en complément à deux) et du contenu du
registre constituant la base.
Le registre de base n’est pas modifié. Il existe trois formes d’adressage
indexé à déplacement constant, suivant la valeur de cette constante.

Déplacement sur  4 bits

Ce déplacement codé sur 5 bits (en complément à deux) présente


l’avantage d’être contenu dans le post-octet d’indexation. Ce qui permet un
gain de place mémoire et une exécution plus rapide de cette instruction.
Les bits 0 à 4 du post-octet déterminent donc la valeur du déplacement
qui peut être de -16 octets en arrière (1 0000) et de + 15 octets en avant
(0 1111). Dans ce cas le bit constamment à zéro initialise le bit 4 comme
bit de signe.

68

34
18/11/2018

Mode adressage Exemple


VIII. Mode adressage indexé 1. Déplacement NUL :
a. Sur deux octets LDB ,X
a. Sur trois octets LDY ,U
2. Auto Incrémentation/décrémentation :
a. Sur deux octets LDA ,Y+
a. Sur trois octets LDY ,--X
3. Déplacement constant :
a. Sur ± 4 bits ADDB -14,X
a. Sur ± 7 bits LDA $30,X
a. Sur ± 15 bits LDB $8000,Y
4 .Déplacement accumulateur :
a. Déplacement sur  7 bits. Acc A ou B LDA B,X

a. Déplacement sur  15 bits. Acc D LEAY D,X


5. Base=Compteur Programme PC
a. Déplacement sur  7 bits. LDB $20,PC
a. Déplacement sur  15 bits. ADDA $2000,PC
a. Etiquette localisée LEAX ETIQ,PC
IX. Mode adressage indexé 1. Déplacement nul LDA [,X]
indirect 2. Auto Incrémentation/décrémentation ADDB [,U++]
3. Déplacement constant LDA [$2000,X]
4 .Déplacement accumulateur LDU [D,PC]
LDA [$F000,PC]
5. Base=Compteur Programme PC
LDA [TABLE,PC]

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

Pré- auto Post_auto


décrémentation décrémentation
7  15 Acc Acc Acc
Déplacement Nul 4 bits
bits bits A B D de un : de deux : de un : de deux :
« ,-  » « ,-- » « , + » « ,-- ++»

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

Pré- auto Post_auto


décrémentation décrémentation
7  15 Acc Acc Acc
Déplacement Nul 4 bits
bits bits A B D de un : de deux : de un : de deux :
« ,-  » « ,-- » « , + » « ,-- ++»

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

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 : PC

Pré- auto Post_auto


décrémentation décrémentation
7  15 Acc Acc Acc
Déplacement Nul 4 bits
bits bits A B D de un : de deux : de un : de deux :
« ,-  » « ,-- » « , + » « ,-- ++»
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é
72

36
18/11/2018

FIN DE LA 1ère Partie

Merci de votre attention

73

Classification des
instructions

74

37
18/11/2018

Classification des instructions

Les instructions du 6809 sont classées par groupe (5) :

I. Instructions de traitement des données

II. Instructions de transfert

III. Instructions de test et de branchements

IV. Instruction opérant sur les pointeurs

V. Traitement des interruptions

75

Classification des instructions

I. Instructions de traitement des données

Les instructions de traitement des données se répartissent en Quatre


catégories:

1. Les instructions arithmétiques

2. Les instructions de rotation et décalage

3. Les instructions logiques

4. Les instructions d'incrémentation-décrémentation,


mise à 0, complémentation

76

38
18/11/2018

I. Instructions de traitement des données

1. Les instructions arithmétiques

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

I. Instructions de traitement des données

2. Les instructions de rotation et décalage

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

N.B: Ces instructions opèrent sur des déplacements de 1 bit seulement

78

39
18/11/2018

I. Instructions de traitement des données

3 .les instructions logiques

Ces instructions portent toutes sur des données de 8 bits

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

I. Instructions de traitement des données

4 Instructions d’incrémentation-décrémentation, mise à 0, complémentation

Ces instructions (Sauf NOP) agissent sur une seule opérande.

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

II Instructions de transfert des données

On peut classer les instructions de transfert des données en TROIS catégories :

1. Instructions opérant sur les registres internes et la mémoire


2. Instructions de transfert opérant sur les pointeurs
3. Instructions opérant seulement sur les registres internes du microprocesseur

1. Instructions opérant sur les registres internes et la mémoire


Ce type d’instructions est très employé. Les transferts mémoire, registre interne du
microprocesseur se font su 8 (A, B) ou sur 16 bits(D, X, Y, S , U). Seuls les registres
PC et DP ne sont pas accessibles directement.

Instruction Fonction
LD Chargement des registres internes du MPU
ST Mise en mémoire des registres internes du MPU

81

II Instructions de transfert des données

On peut classer les instructions de transfert des données en TROIS catégories :

1. Instructions opérant sur les registres internes et la mémoire


2. Instructions de transfert opérant sur les pointeurs
3. Instructions opérant seulement sur les registres internes du microprocesseur

2. Instructions de transfert opérant sur les pointeurs


Pour accéder aux piles du 6809, il existe deux instructions « d’empilage » et de
« dépilage ». Ces instructions transfèrent n’importe quel registre interne du
microprocesseur.

Instruction Fonction
PSH Empilement de(s) registre(s) sur la pile
PUL Dépilement de(s) registre(s)

82

41
18/11/2018

II Instructions de transfert des données

On peut classer les instructions de transfert des données en TROIS catégories :

1. Instructions opérant sur les registres internes et la mémoire


2. Instructions de transfert opérant sur les pointeurs
3. Instructions opérant seulement sur les registres internes du microprocesseur

3.Instructions opérant seulement sur les registres internes du microprocesseur


Ces instructions permettent tous les transferts possibles entre les registres internes
du microprocesseur.

Instruction Fonction
EXB Echange du contenu de deux registres
TRF Transfert de registre à registre

83

III Instructions de tests et branchements

Ces instructions peuvent se répartir en trois catégories distinctes :

1. Instructions de test et de comparaison

2. Instructions de test et de branchement ;

3. Instructions de saut et branchement

1. Instructions de test et de comparaison

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

III Instructions de tests et branchements

2. Instructions de test et de branchement

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).

III Instructions de tests et branchements

3. Instructions de saut et branchement

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

IV Instructions opérant sur les pointeurs

Le processeur calcule une adresse effective en fonction du mode d’adressage spécifique(toujours


indexé) puis charge cette valeur dans le pointeur (X, Y, S ou U).

Instruction Fonction
LEA Chargement d’un registre pointeur avec une adresse effective

V. Traitement des interruptions

Il existe sur le 6809, trois interruptions logicielles et trois interruptions matérielles.

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

Merci de votre attention

88

44

Vous aimerez peut-être aussi