Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du...

129
1 COURS EXPO Microprocesseur 6809 (2° GIM ) Mr KHATORY

Transcript of Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du...

Page 1: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

1

COURS EXPO

Microprocesseur 6809

(2° GIM )

Mr KHATORY

Page 2: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

2

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

Page 3: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

3

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

Page 4: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

4

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

XTAL

EXTAL

Q

E

BS

DMA/BREQ

BA

NMI

IRQ

FIRQ

HALT

RESET

MRDY

R / W

39

Horloge

Signaux

mémoire

Bus de commande

A0

A15

Bus

des

adresses

Bus

des

données

BROCHAGE DU MC 6809

D0

D7

8

23

24

31

38

35

34

33

5

6

2

3

4

40

37

36

32

0V +5V

Page 5: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

5

Organisation matérielle du 6809

XTAL

EXTAL

Q

E

BS

DMA/BREQ

BA

NMI

IRQ

FIRQ

HALT

RESET

MRDY

R / W

39

Horloge

Signaux

mémoire

Bus de commande

A0

A15

Bus

des

adresses

Bus

des

données

BROCHAGE DU MC 6809

D0

D7

8

23

24

31

38

35

34

33

5

6

2

3

4

40

37

36

32

0V +5V

Page 6: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

6

Compteur programme

Registre page direct

Accumulateurs.

Manipulation

des données

16 bits

8 bits 8 bits

A B

D

X

Y

U

S

DP

PC

CCR

Registres

d'index

Pointeurs de

pile

Registre d’état

Le microprocesseur 6809 comporte NEUF registres internes

programmables accessibles par l'utilisateur:

Architecture 6809

Page 7: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

7

Compteur Ordinal

PC

Registre d'index

Y

Registre d'index

X

Pointeur de Pile

S Pointeur de Pile

U

Registre de page

DP

Architecture 6809

UAL

Registre A

Registre B

Registre..d'état…

CCR

Page 8: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

8

UAL

Registre A

Registre B

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)

Architecture 6809

Page 9: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

9

Architecture 6809

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.

Registre d'index

X

Pointeur de Pile

S Pointeur de Pile

U

UAL

Registre A

Registre B

Registre d'index

Y

Page 10: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

10

Architecture 6809

Registre d'index Registre d'index

X

Pointeur de Pile

S Pointeur de Pile

U

UAL

Registre A

Registre B

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.

Page 11: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

11

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.

Architecture 6809

Compteur Ordinal

PC

UAL

Registre A

Registre B

Page 12: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

12

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.

Architecture 6809

Registre d'index

X

Pointeur de Pile

S Pointeur de Pile

U

UAL

Registre A

Registre B

Registre d'index

Y

Compteur Ordinal

PC

DP

Page 13: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

13

Architecture 6809

Registre d'index

X

Pointeur de Pile

S Pointeur de Pile

U

UAL

Registre A

Registre B

Registre d'index

Y

Compteur Ordinal

PC

DP

CCR

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

Page 14: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

14

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 15: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

15

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 16: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

16

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z V

C

Architecture 6809

Page 17: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

17

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 18: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

18

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 19: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

19

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

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

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 20: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

20

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 21: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

21

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 22: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

22

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

V

Dépassement (oVerflow) Positionné si le résultat( en complément à

deux) d'une opération arithmétique

déborde

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

précédente est nul

N Négatif Indique un résultat négatif.

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

IRQ

H Demi-retenue

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

FIRQ

E Etat de sauvegarde Si à 1, tout le contexte du processeur est

sauvegardé dans la pile

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

E F

H

I

N

Z

V

C

Architecture 6809

Page 23: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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

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.

STRUCTURE D'UNE INSTRUCTION

Instruction (mnémoniques) Opération Opérande

LDA $2000

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

Charger (Load ) dans

le registre A

Page 24: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

24

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

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,…..

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.

Page 25: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

25

Exemple:

ABX addition de l'accumulateur B à l'index X.

2008 X

Y

S

U

ADR

PC

14

A

B

D

7 6 5 4 3 2 1 0

CCR

2008 + 14

3A ADR

ADR+ 1

DP

Adressage inhérent simple

MPU Mémoire

Mode d’adressage

201C

Code Opération

de ABX

ADR+1

X (B) + (X)

Page 26: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

26

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.

Mode d’adressage

Page 27: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

27

X

Y

S

1000 U

ADR

PC

A

B

D

7 6 5 4 3 2 1 0

CCR

ADR+ 2

DP

1F ADR

34 ADR+1

ADR+2

Adressage inhérent paramétré

Échange et transfert des données

MPU Mémoire

É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

Mode d’adressage

ADR +2

1000

Page 28: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

28

Post-octet transfert/échange :

TFR U,S transfert de U dans S

Code Opération

1F

Post-Octet

34

Mode d’adressage

code Registre

0000 D

0001 X

0010 Y

0011 U

0100 S

0101 PC

1000 A

1001 B

1010 CCR

1011 DP

Page 29: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

29

Post-octet transfert/échange :

code Registre

0000 D

0001 X

0010 Y

0011 U

0100 S

0101 PC

1000 A

1001 B

1010 CCR

1011 DP

TFR U,S transfert de U dans S

Code Opération

1F

Post-Octet

34

Mode d’adressage

3 4

Page 30: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

30

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.

Mode d’adressage

Ex :PSHS A, B, X sauvegarde dans la pile de A, B, X

xx x’x’

ss s’s’

X

Y

S

U

ADR

PC

D aa

bb

A

B

7 6 5 4 3 2 1 0

CCR

SSS’S’ - 4

ADR+ 2

DP

ADR + 1

34 ADR

16

ADR + 2

SSS’S’

Adressage inhérent paramétré

MPU Mémoire

SSS’S’ -4 aa

SSS’S’ -2 xx

SSS’S’ -1 x’x’

SSS’S’ -3 bb

Instructions d’accès aux piles

ADR+2

SSS’S’-4

Page 31: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

31

b7 b6 b5 b4 b3 b2 b1 b0

(#$xy)

=

PC U Y X DP B A CCR

Ordre d’empilement des registres

Mnémoniques :

PSHS liste explicite de registres à empiler

ou (implicitement)

PSHS #$xy

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.

Exemple: PSHS A,B,X PSHS #$16

EMPILEMENT

0 0 0 1 0 1 1 0

X B A

x’x’

xx

bb

aa

Page 32: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

32

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

Mode d’adressage

xx x’x’

yy y’y’

ss s’s’

X

Y

S

uu u’u’

U

ADR

PC

D aa

bb

A

B

7 6 5 4 3 2 1 0

1 1 x 1 x x x x CCR

SSS’S’ - C

pp

DP

3C ADR

FF ADR + 1

ADR + 2

Sauvegarde Masque INT

FIRQ

Masque INT IRQ

CCR SSS’S’ -C

aa SSS’S’ -B

bb SSS’S’ -A

pp SSS’S’ -9

xx

x’x’

SSS’S’ -8

SSS’S’ -7

y’y’

yy SSS’S’ -6

SSS’S’ -5

uu

u’u’

SSS’S’ -4

SSS’S’ -3

ADR +2 SSS’S’ -2

SSS’S’ -1

SSS’S’

Adressage inhérent paramétré

Attente d’interruption

MPU Mémoire

7 6 5 4 3 2 1 0

x x x x x x x x CCR

SSSS’-C

ADR+ 2

ADR+2

Page 33: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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

(RECAP)

Page 34: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

34

2. Mode d'adressage immédiat

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 :

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.

Page 35: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

35

X

Y

S

U

ADR

PC

A

B

D

7 6 5 4 3 2 1 0

CCR

$15 86 ADR

ADR + 2

DP

Adressage immédiat

MPU Mémoire

15 ADR+1

ADR+2

Instructions sur deux octets

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

premier octet contient le code opératoire

15

Code Opération

LDA

ADR+2

Page 36: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

36

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.

Page 37: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

37

X

Y

S

U

ADR

PC

11 A

B 22

D

E F H I N Z V C

CCR

20

ADR

ADR + 3

DP

Adressage immédiat

MPU Mémoire

05

ADR+1

ADR+2

Instructions sur trois octets

ADR+3

C3 $1122+$2005

ADR + 3

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

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

31

27

Code Opération

ADDD

Page 38: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

38

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.

Instructions sur quatre octets

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

Page 39: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

39

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

8E

ADR

ADR + 4

DP

Adressage immédiat

MPU Mémoire

20

08

ADR+1

ADR+2

Instructions sur quatre octets

ADR+3

10 $10

Octet

supplémentaire

ADR+4

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

2008

$2008

ADR + 4

Page 40: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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

Page 41: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

41

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

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

DP ¨PF

Page 42: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

42

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)

Page 43: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

43

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)

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

11

ADR

ADR + 2

20 DP

Adressage direct

MPU Mémoire

ADR+1

ADR+2

Instructions sur deux octets

08

96

20 08

11

ADR +2

Page 44: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

44

Instructions sur trois octets

Ex : LDY $05 ou LDY < $05 chargement du registre Y avec le contenu de $2005/06 (DP=$20)

Le code opératoire (sur 2 octet)

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

Page 45: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

45

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

ADR

ADR + 3

20 DP

Adressage direct

MPU Mémoire

11

22

ADR+1

ADR+2

Instructions sur trois octets

9E

05

10

20 05

20 06

1122

Ex : LDY $05 ou LDY < $05 chargement du registre Y avec le contenu de $2005/06 (DP=$20)

1122

ADR+3

Page 46: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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. sur deux octets

1.LDA $40 ou

LDA <$40

adresse = $2040 : (DP)=$20

2. sur trois octets 2. LDY $50

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

Page 47: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

47

4. Mode d'adressage étendu

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

Le code opératoire (sur 1 octet)

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

Page 48: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

48

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

avec le contenu de l’adresse $21A5

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

11

ADR

ADR + 3

DP

Adressage étendu

MPU Mémoire

ADR+1

ADR+2

Instructions sur trois octets

21

A5

B6

21 A5

$11

11

ADR+3

Page 49: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

49

Instructions sur quatre octets

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

Le code opératoire (sur 2 octet)

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

Mode d'adressage étendu

Page 50: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

50

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

11

ADR

ADR + 4

DP

Adressage étendu

MPU Mémoire

22

ADR+1

ADR+2

Instructions sur quatre octets

BE

2C

10

2C B5

2C B6

$1122

B5 ADR+3

ADR+4

Pré-octet

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

contenu de $2CB5/B6

1122

ADR+4

Page 51: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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. sur deux octets

1.LDA $40 ou

LDA <$40

adresse = $2040 : (DP)=$20

2. sur trois octets 2. LDY $50

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

Page 52: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

52

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.

5. Mode d'adressage étendu indirect

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.

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

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

Page 53: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

53

Ex :LDA [$2000] chargement de l’accumulateur avec le contenu dont l’adresse se trouve en $2000 et $2001.

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

00

ADR

ADR + 4

DP

Adressage étendu Indirect

MPU Mémoire

ADR+1

ADR+2

Instructions sur quatre octets

30

$11

9F

20

A6

00

2001

2000

11

ADR+3

ADR+4

3000

Post Octet

11

ADR+4

Page 54: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

54

Pour certaines instructions, il est nécessaire d’ajouter un pré-octet Cela est nécessaire pour les instructions opérant sur les pointeurs S et Y ($10) et pour les instructions de comparaison CMPU et CMPD ($11). Le reste de la codification est identique au cas précédent.

Mode d’adressage

Instructions sur cinq octets

Ex:LDY [$2004] chargement du registre d’index Y avec le contenu dont l’adresse se trouve en $2004 et $2005.

Page 55: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

55

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

00

ADR + 5

DP

Adressage étendu Indirect

MPU

Instructions sur cinq octets

30

9F

20

AE

$11 22

04

2005

2004

22

11

ADR

ADR+1

ADR+2

ADR+3

ADR+4

Post

Octet

3000

3001

Mémoire

10

Pré

Octet

Ex:LDY [$2004] chargement du registre d’index Y avec le contenu dont l’adresse se trouve en $2004 et $2005.

1122

ADR+5

Page 56: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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. sur deux octets

1.LDA $40 ou

adresse = $2040 : (DP)=$20

2. sur trois octets 2. LDY $50

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

VII. Mode adressage relatif long

VIII. Mode adressage indexé

IX. Mode adressage indexé indirect

Page 57: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

57

Mode d’adressage

6. Mode d'adressage relatif court

Ce mode d'adressage est réservé pour les instructions de branchement

Dans ce cas,BPL fait un test sur le bit N du registre CCR , le

branchement a lieu si N=0 ( Résultat de l’opération précédente positif)

Ex: Arret EQU $3000

BPL Arret

Page 58: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

58

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

0 CCR

ADR

ADR + 2

+Depl

DP

Adressage relatif

court

MPU Mémoire

ADR+1

ADR+2

Depl

2A

$3000

ADR +2 +Depl

ARRET

Si N=0 alors il

y a branchement

Ex: Arret EQU $3000

BPL ARRET

Le déplacement (Depl) est calculé en fonction de la valeur de ADR par rapport à l’étiquette ARRET ($3000).

ARRET = ADR + 2 + Depl

ADR +2

ADR+2 ARRET

Page 59: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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. sur deux octets

1.LDA $40 ou

adresse = $2040 : (DP)=$20

2. sur trois octets 2. LDY $50

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 les instructions de

branchement ( (déplacement ±

7 bits)

BHS FIN

VII. Mode adressage relatif long

VIII. Mode adressage indexé

IX. Mode adressage indexé indirect

Page 60: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

60

Ce mode est identique au précédent, il est toujours réservé aux

branchements. Les instructions sont codées sur quatre octets, les deux

premiers déterminent le code opération, les 3è et 4è octets donnent la valeur

signée du déplacement.

Le déplacement est codé sur 16 bits.

7. Mode d'adressage relatif long

Exemple : ARRET EQU $4000

LBPL ARRET

Page 61: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

61

Exemple : ARRET EQU $4000

LBPL ARRET

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

0 CCR

ADR

ADR + 4

+ Depl

DP

Adressage relatif

long

MPU Mémoire

ADR+1

ADR+2

2A

Depl PFO

10

$4000

ADR + 4 +

Depl

ARRET

Si N=0 alors il y a

branchement

Depl PFA

ADR+3

ADR+4

ARRET

ARRET = ADR + 4 + Depl

La présence d’un pré-octet ($10) permet de différencier l’adressage relatif long de l’adressage relatif court.

ADR +4

ADR +4

Page 62: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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. sur deux octets

1.LDA $40 ou

adresse = $2040 : (DP)=$20

2. sur trois octets 2. LDY $50

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

les instructions de branchement (

(déplacement ± 7 bits)

BHS FIN

VII. Mode adressage relatif long mode d'adressage est réservé pour

les instructions de branchement (

(déplacement ± 15 bits)

LBPL ARRET

VIII. Mode adressage indexé

IX. Mode adressage indexé indirect

Page 63: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

63

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

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

Registre

Page 64: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

64

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.

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

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

Toutes ces options sont sélectionnées par le post-octet

qui suit le code opératoire.

LDB $20, X

Instruction déplacement Base : X ou Y ou U ou S ou PC

LDA , Y+

Page 65: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

65

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.

Page 66: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

66

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

Compteur Programme Indifférent, la sélection de la base PC se fait à laide

des bits 2 et 3 (1,1)

Page 67: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

67

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

Page 68: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

68

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.

Page 69: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

69

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

5 :Base= compteur Programme PC

Auto

Increm/Décrem

Dépl accumul

Déplacement const

Déplacement const

Dépl accumul

Dépl PC

Déplacement nul

Page 70: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

70

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

5 :Base= compteur Programme PC

Déplacement nul

Auto Increm/

Décrem

Dépl accumul

Déplacement const

Déplacement const

Dépl accumul

Dépl PC

Page 71: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

71

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.

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

Page 72: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

72

xxxx X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

11

ADR

ADR + 2

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement nul

84

A6

xxxx

11

Post-

octet

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

•b7=1 b4=0 signifie que l’adressage est indexé direct

•b6.b5=0.0 l’index est X

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

1 0 0 0 0 1 0 0

X Déplacement nul

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

11

ADR +2

Adressage indexé direct

Page 73: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

73

pour certains registres du microprocesseur il est nécessaire d’ajouter

un pré-octet, aux deux octets opératoires proprement dit. Cela mis à

part, ce mode est identique au précédent.

Instructions sur trois octets

Exemple :

LDY ,X chargement de l’index Y avec la valeur dont l’adresse de base

est le contenu de X.

Page 74: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

74

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é indirect

1. Déplacement nul LDA [,X]

2. Auto Incrémentation/décrémentation ADDB [,U++]

3. Déplacement constant LDA [$2000,X]

4 .Déplacement accumulateur LDU [D,PC]

5. Base=Compteur Programme PC LDA [$F000,PC]

LDA [TABLE,PC]

Page 75: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

75

On peut obtenir des pré-décrémentations de un ou deux et des post-

incrémentations de un ou deux.

Ces possibilités permettent de gérer facilement une table.

Le registre pointeur sélectionné contient l’adresse effective des données

utilisées par l’instruction.

8.2 Mode d'adressage indexé. Auto-incrémentation/décrémentation

Page 76: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

76

Instructions sur deux octets

Exemple :

LDA ,X+ chargement de A avec la valeur dont l’adresse est le

contenu de X, post-incrémentation par un de X.

Page 77: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

77

xxxx X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

11

ADR

ADR + 2

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

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

80

A6

xxxx

11

Post-

octet

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

•b7=1 b4=0 signifie que l’adressage est indexé direct

•b6.b5=0.0 l’index est X

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

1 0 0 0 0 0 0 0

X post_incrémentation

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

11

ADR +2

Adressage indexé direct

xxxx+1

xxxx+1

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

Post Octet

Page 78: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

78

Exemple :

LDY , --X chargement de Y avec la valeur dont l’adresse de base est le contenu

de X – 2.

Instructions sur trois octets :

xxxx X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

11

ADR

ADR + 3

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Auto-incrémentation/Décrémentaion(3 octets)

AE

83

10

xxxx- 2

1122

Post-

octet

xxxx -2

xxxx - 1

xxxx

22

ADR+3

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

•b7=1 b4=0 signifie que l’adressage est indexé direct

•b6.b5=0.0 l’index est X

•b3.b2.b1.b0=0.0.1.1 double pré décrémentation.

1 0 0 0 0 0 1 1

X Double

pré_décrémentation

Adressage indexé direct

NB: Le mode auto-incrémentation/décrémentation par deux est utilisé pour gérer des tables d’adresses

xxxx-2

1122

ADR+3

Page 79: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

79

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é indirect

1. Déplacement nul LDA [,X]

2. Auto Incrémentation/décrémentation ADDB [,U++]

3. Déplacement constant LDA [$2000,X]

4 .Déplacement accumulateur LDU [D,PC]

5. Base=Compteur Programme PC LDA [$F000,PC]

LDA [TABLE,PC]

Page 80: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

80

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.

Page 81: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

81

Exemple :

ADDB -3,Y addition du contenu d’adresse mémoire Y-3 au contenu de l’accumulateur B, le résultat est

dans B.

yyyy

X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

ADR

ADR + 2

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement sur 4 bits

11

3D

EB

yyyy - 2

bb+11

-3 + yyyy yyyy - 1

yyyy - 3

yyyy

-3

bb

A

B

D

bb+11

ADR+2

Le post-octet prend la valeur $3D :

•b7=0 le bit b4 est le bit de signe de déplacement.

•b6.b5=0.1 index Y .

•b4.b3.b2.b1.b0=1.1.1.0.1 le déplacement est -3 en complément à deux.

0 0 1 1 1 1 0 1

Y Déplacement (en compl à

2) = -3

Post Octet

Page 82: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

82

Déplacement sur 7 bits

Ce déplacement codé sur 8 bits (en complément à deux) est contenu

dans un seul octet, placé à la suite du code opératoire proprement dit et

du post-octet. Les déplacements possibles sont donc compris entre –

128 et + 127 octets.

Exemple :

LDY $30, U chargement du pointeur Y avec le contenu mémoire dont

l’adresse de base est le contenu de U + $30

Page 83: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

83

Exemple :

LDY $30, U chargement du pointeur Y avec le contenu mémoire dont l’adresse de base est

le contenu de U + $30

X

Y

S

uuuu U

ADR

PC

E F H I N Z V C

CCR

11

ADR

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement sur 7 bits

30

AE

C8

10

uuuu+$30

uuuu+$30

Post-

octet

1122

22

A

B

D

ADR+3

ADR+4

uuuu+$31

ADR + 4

ADR+4

1122

Le post-octet prend la valeur C8 en hexa (1100 1000) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5=1.0. index U .

•b3.b2.b1.b0=1.0.0.0 le déplacement est codé sur 8 bits

en compléments à deux.

1 1 0 0 1 0 0 0

U Déplacement ±7 bits

Adressage indexé direct

Post Octet

Page 84: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

84

Déplacement sur 15 bits

Ce déplacement codé sur 16bits (en complément à deux) est contenu dans

deux octets placés à la suite de ceux de l’instruction (code opératoire +

post octet).Les déplacements possibles sont donc compris entre – 32768 et

+ 32767 octets.

Exemple :

LDA $3000, X chargement de l’accumulateur A avec le contenu

mémoire d’adresse X + $3000

Page 85: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

85

Exemple :

LDA $3000, X chargement de l’accumulateur A avec le contenu mémoire d’adresse X + $3000

xxxx X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

11

ADR

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement sur 15 bits

00

89

30

A6

xxxx +$3000

xxxx

+ $3000

Post-

octet

$11

A

B

D

ADR+3

ADR+4

ADR + 4

ADR+4

11

Le post-octet prend la valeur 89 en hexa (1000 1001) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5=0.0. index X .

•b3.b2.b1.b0=1.0.0.1 le déplacement est codé sur 16 bits

en compléments à deux.

1 0 0 0 1 0 0 1

X Déplacement ±15

bits

Adressage indexé direct

Post Octet

Page 86: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

86

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é indirect

1. Déplacement nul LDA [,X]

2. Auto Incrémentation/décrémentation ADDB [,U++]

3. Déplacement constant LDA [$2000,X]

4 .Déplacement accumulateur LDU [D,PC]

5. Base=Compteur Programme PC LDA [$F000,PC]

LDA [TABLE,PC]

Page 87: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

87

8.4 Mode d'adressage indexé. Déplacement accumulateur

Ce mode d’adressage est semblable au précédent à l’exception du

déplacement qui n’est plus codé sur des octets spécifiques mais

contenu dans les accumulateurs A,B ou D du microprocesseur..

L’adresse effective est donc la somme des registres pointeur et

accumulateur spécifiés dans le mnémonique de l’instruction

Exemple :

LDA B, X chargement de l’accumulateur A avec le contenu mémoire

d’adresse X + B

Déplacement sur 7 bits. Accumulateurs A ou B

Page 88: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

88

Exemple :

LDA B, X chargement de l’accumulateur A avec le contenu mémoire d’adresse X + B

xxxx X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

ADR

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement sur 7 bits. Accu A ou B

11

85

A6

$11

xxxx+bb xxxx+bb

bb

A

B

D

Post-

octet

ADR + 2

ADR+2

11

Le post-octet prend la valeur 85 en hexa (1000 0101) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5=0.0. index X .

•b3.b2.b1.b0=0.1.0.1 le déplacement est égale

au contenu de l’Acc B (en complément à 2)

1 0 0 0 0 1 0 1

X Déplacement =

contenu de B

(Compl à2)

Adressage indexé direct

Post Octet

Page 89: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

89

Déplacement sur 15 bits. Accumulateur D

Exemple :

LEAY D, X chargement dans l’index Y de l’adresse effective donnée par la somme D + X

xxxx X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

ADR

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement sur 15 bits. Accumulateur D

8B

31

aabb

+ xxxx

aa

bb

A

B D

Post-

octet ADR + 2

ADR+2

Le post-octet prend la valeur 8B en hexa (1000 1011) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5=0.0. index X .

•b3.b2.b1.b0=1.0.1.1 le déplacement = contenu

de l’Acc D=(A :B )en complément à 2)

1 0 0 0 1 0 1 1

X Déplacement =

Contenu D (En compl

2)

Adressage indexé direct

aabb + xxxx

Post Octet

Page 90: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

90

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é indirect

1. Déplacement nul LDA [,X]

2. Auto Incrémentation/décrémentation ADDB [,U++]

3. Déplacement constant LDA [$2000,X]

4 .Déplacement accumulateur LDU [D,PC]

5. Base=Compteur Programme PC LDA [$F000,PC]

LDA [TABLE,PC]

Page 91: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

91

8.5 Mode d'adressage indexé. Base=compteur programme

Les paragraphes précédents nous ont permis d’aborder les différents modes

d’adressage indexé utilisant les pointeurs X, Y,S et U comme base.

L’utilisation du compteur ordinal comme base d’indexation impose des

restrictions sur les types de déplacements.

Seuls les déplacements constants codés sur 8 ou 16 bits (en

complément à 2) peuvent être utilisés.

Page 92: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

92

Déplacement sur 7 bits.

L’adresse effective est égale au compteur programme courant plus un

déplacement codé sur 8 bits. L’instruction est codée sur 3 octets ( code

opératoire + post-octet+ déplacement).

Exemple :

LDA $20, PC chargement de l’accumulateur A avec le contenu

mémoire dont d’adresse est la valeur de PC + $20

Page 93: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

93

Exemple :

LDA $20, PC chargement de l’accumulateur A avec le contenu mémoire dont d’adresse est

la valeur de PC + $20

X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

ADR

ADR + 3

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Base=PC

11

8C

20

A6

$11

ADR + 3+$20

A

B

D

Post-

octet

ADR +

3+$20

ADR+3

ADR+ 3

11

Le post-octet prend la valeur 8C en hexa (1000 1100) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5 indifferent

•b3.b2.b1.b0=1.1.0.0 le déplacement

sur 8 bits (en complément à 2)

1 0 0 0 1 1 0 0

Indiférent Déplacement sur 8

bits ( en Compl à 2)

Adressage indexé direct

Post Octet

Page 94: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

94

Déplacement sur 15 bits.

L’adresse effective est égale au compteur courant plus un déplacement

codé sur deux octets. Ce mode d’adressage présente l’avantage de

permettre des déplacements sur tout l’espace mémoire du processeur

Exemple :

ADDA $2000, PC addition du contenu mémoire dont l’adresse est la

valeur courante du PC+ $2000 et de l’accumulateur A, le résultat est

dans A.

Page 95: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

95

X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

ADR

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Déplacement const sur 15 bits

11

8D

20

AB

aa+11

ADR + 4+$2000

aa A

B

D

Post-

octet

ADR +

4+$2000

ADR+3

00

ADR+4

Exemple :

ADDA $2000, PC addition du contenu mémoire dont l’adresse est la valeur courante du

PC+ $2000 et de l’accumulateur A, le résultat est dans A.

ADR + 4

ADR+ 4

aa + 11

Le post-octet prend la valeur 8D en hexa (1000 1101) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5 indifferent

•b3.b2.b1.b0=1.1.0.1 le déplacement sur 16 bits

(en complément à 2)

1 0 0 0 1 1 0 1

Indiférent Déplacement sur 16

bits ( en Compl à 2)

Adressage indexé direct

Post Octet

Page 96: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

96

Étiquette localisée.

Dans ce cas, la syntaxe assembleur n’utilise pas directement un déplacement

mais une étiquette localisée située à 128 octets de l’instruction suivante

(déplacement sur 8 bits) ou n’importe où sur l’espace mémoire du

microprocesseur (déplacement sur 16 bits).

Comme précédemment l’adresse effective est égale au compteur

programme courant plus un déplacement codé sur 8 ou 16 bits.

L’instruction est codée sur trois ou quatre octets.

La syntaxe assembleur contient le mnémonique de l’instruction, le nom de

l’étiquette localisée plus la base.

L’assembleur calcule la valeur du déplacement en fonction de la position

de l’étiquette.

Page 97: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

97

Exemple :

LEAX ETIQ, PC chargement du registre d’index X avec l’adresse effective qui est donnée par la

position de l’étiquette par rapport au compteur programme courant.

Dans cet exemple on prend : ADR=$2000

ETIQ=$2015

X

Y

S

U

ADR

PC

E F H I N Z V C

CCR

11

ADR

ADR + 4

DP

Adressage indexé

MPU Mémoire

ADR+1

ADR+2

Etiquette localisée

8D

00

30

xxxx= ETIQ –

(ADR+4)

A

B

D

Post-

octet

ADR+2

ADR+2

ETIQ

xxxx=0011

xxxx= 0011

Le post-octet prend la valeur 8D en hexa (1000 1101) :

•b7=1 b4=0 adressage indexé direct.

•b6.b5 indifferent

•b3.b2.b1.b0=1.1.0.1 le déplacement sur 16 bits

(en complément à 2)

1 0 0 0 1 1 0 1

Indiférent Déplacement sur 16

bits ( en Compl à 2)

Adressage indexé direct

ADR+4

Page 98: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

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é indirect

1. Déplacement nul LDA [,X]

2. Auto Incrémentation/décrémentation ADDB [,U++]

3. Déplacement constant LDA [$2000,X]

4 .Déplacement accumulateur LDU [D,PC]

5. Base=Compteur Programme PC LDA [$F000,PC]

LDA [TABLE,PC]

Page 99: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

99

9. Mode d'adressage indexé indirect

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.

On peut donc écrire :

Adresse effective = contenu mémoire dont l’adresse de

base est la somme de l’index + le déplacement.

La syntaxe assembleur utilisée pour définir l’indirection est la même que celle

de l’adressage étendu : « [ ] »

Les instructions sont codés sur deux octets, le premier définit le code opératoire

(identique à l’indexé simple), le second le type de déplacement, le type de base

et l’indirection.

Page 100: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

100

9.1 Mode d'adressage indexé indirect. Déplacement nul

Exemple :

LDA [, X] chargement de A avec le contenu mémoire dont l’adresse est le contenu de

(X,X+1).

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

08

ADR

ADR + 2

DP

Adressage indexé Indirect

MPU

ADR+1

ADR+2

Déplacement nul

20

94

xxxx+1

11

xxxx

11 2008

Post Octet Mémoire

A6

11

xxxx

Le post-octet prend la valeur 94 en hexa (1001 0100) :

•b7=1 b4=1 adressage indexé indirect.

•b6.b5 =0.0 index X

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

ADR+2

1 0 0 1 0 1 0 0

X Déplacement nul

Adressage indexé indirect

Page 101: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

101

9.2 Mode d'adressage indexé indirect. Auto-incrémentation/décrémentation

Le mode indexé travaille seulement en auto-incrémentation/décrémentation

par deux, ce qui est normal car ce mode permet de gérer des adresses

Exemple :

ADDA [, U++] addition de l’accumulateur A et du contenu mémoire

dont l’adresse se trouve pointée par U,U+1, le résultat est dans A.

Page 102: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

102

X

Y

S

uuuu U

ADR

PC

aa A

B

D

E F H I N Z V C

CCR

08

ADR

ADR + 2

DP

Adressage indexé Indirect

MPU

ADR+1

ADR+2

Auto-incrémentation/décrémentation

20

D1

uuuu+1

aa+11

uuuu

11 2008

Post Octet Mémoire

AB

uuuu+2

Exemple :

ADDA [, U++] addition de l’accumulateur A et du contenu mémoire dont l’adresse se trouve

pointée par U,U+1, le résultat est dans A.

aa+11

ADR+2

Le post-octet prend la valeur D1 en hexa (1101 0001) :

•b7=1 b4=1 adressage indexé indirect.

•b6.b5 =1.0 index U

•b3.b2.b1.b0=0.0.0.1 post auto-incrémentation de 2

1 1 0 1 0 0 0 1

U Post auto_incrémentation

de 2

Adressage indexé indirect

Page 103: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

103

9.3 Mode d'adressage indexé indirect. Déplacement constant

Les déplacements constants sont codés sur 8 ou 16 bits (en complément à

deux). L’indirection n’est pas possible pour un déplacement codé sur 5

bits.

Exemple :

LDA [$2000, X] chargement de l’accumulateur A avec le contenu

mémoire dont l’adresse est pointée par X+ $2000.

Page 104: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

104

xxxx X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

00

ADR

DP

Adressage indexé Indirect

MPU

ADR+1

ADR+2

Déplacement constant

30

20

00

99

$11

xxxx+2000

11 3000

Post Octet Mémoire

A6

xxxx

+$2000

ADR+3

ADR+4

xxxx+2001

Exemple :

LDA [$2000, X] chargement de l’accumulateur A avec le contenu mémoire dont l’adresse est

pointée par X+ $2000.

1 0 0 1 1 0 0 1

X Dépl constant sur ±15 bits

Adressage indexé indirect

Le post-octet prend la valeur 99 en hexa (1001 1001) :

•b7=1 b4=1 adressage indexé indirect.

•b6.b5 =0.0 index X

•b3.b2.b1.b0=1.0.0.1 déplacement constant sur 15 bits

ADR + 4

ADR+4

11

Page 105: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

105

9.4 Mode d'adressage indexé indirect. Déplacement accumulateur

Comme dans l’adressage indexé simple, le déplacement est contenu dans

les accumulateurs A, B ou D( en complément à deux)

Exemple :

LDU [D, Y] chargement de U avec le contenu dont l’adresse mémoire

est pointée par le contenu de Y + celui de D.

Page 106: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

106

Exemple :

LDU [D, Y] chargement de U avec le contenu dont l’adresse mémoire est pointée par le contenu

de Y + celui de D.

yyyy

X

Y

S

U

ADR

PC

aa

bb

A

B

D

E F H I N Z V C

CCR

00

DP

Adressage indexé Indirect

MPU

ADR

ADR+1

Déplacement accumulateur

30

BB

EE

1122

yyyy+aabb

22

11 3000

Post Octet Mémoire

yyyy +

aabb

ADR+2

3000+1

yyyy+aabb+1

Le post-octet prend la valeur BB en hexa (1011 1011) :

•b7=1 b4=1 adressage indexé indirect.

•b6.b5 =0.1 index Y

•b3.b2.b1.b0=1.0.1.1 déplacement accumulateur D

(en complément à deux)

1 0 1 1 1 0 1 1

Y Dépl accumulateur D

En compl à 2

Adressage indexé indirect

ADR + 2

ADR+2

1122

Page 107: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

107

9.5 Mode d'adressage indexé indirect. Base= compteur programme

Si la base est le compteur programme lui-même, les déplacements sont

codés sur 8 ou 16 bits en complément à deux, l’indirection est possible

dans ces deux cas.

Exemple :

LDA [$F000, PC] chargement de A avec la valeur dont l’adresse est

pointée par la valeur courante du PC + $F000.

Page 108: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

108

Exemple :

LDA [$F000, PC] chargement de A avec la valeur dont l’adresse est pointée par la valeur

courante du PC + $F000.

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

pp

DP

Adressage indexé Indirect

MPU

ADR

ADR+1

Base= compteur programme

PP

F0

00

9D

11

MMmm

11 PPpp

Post

Octet

Mémoire

A6

ADR+4+$F000=

MMmm

ADR+2

MMmm+1

ADR+3

ADR+4

ADR + 4

ADR+4

11

Le post-octet prend la valeur 9D en hexa (1001 1101) :

•b7=1 b4=1 adressage indexé indirect.

•b6.b5 =indifferent

•b3.b2.b1.b0=1.1.0.1 déplacement codé sur 15 bits.

1 0 0 1 1 1 0 1

indiférent Dépl codé sur ± 15 bits

Adressage indexé indirect

Page 109: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

109

Comme pour l’adressage indexé direct, on peut utiliser dans ce

mode non pas un déplacement mais une étiquette localisée, pour

ce qui est de la syntaxe assembleur.

Exemple :

LDA [TABLE, PC] chargement de A avec la valeur dont l’adresse est

pointée par TABLE.

Page 110: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

110

Exemple :

LDA [TABLE, PC] chargement de A avec la valeur dont l’adresse est pointée par TABLE.

X

Y

S

U

ADR

PC

A

B

D

E F H I N Z V C

CCR

pp

DP

Adressage indexé Indirect

MPU

ADR

ADR+1

PC & (étiquette localisée)

PP

DD

dd

9D

11

TABLE

11 PPpp

Post Octet Mémoire

A6

TABLE-(ADR+4)

=DDdd

ADR+2

ADR+3

ADR+4

Le post-octet prend la valeur 9D en hexa (1001 1101) :

•b7=1 b4=1 adressage indexé indirect.

•b6.b5 =indifferent

•b3.b2.b1.b0=1.1.0.1 déplacement codé sur 15 bits.

1 0 0 1 1 1 0 1

indiférent Dépl codé sur ± 15 bits

Adressage indexé indirect

ADR + 4

ADR+4

11

Page 111: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

111

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 :

Déplacement

Nul 4 bits 7

bits

15

bits

Acc

A

Acc

B

Acc

D

Pré- auto

décrémentation

Post_auto

décrémentation

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é

LDB $20, X

Instruction déplacement Base : X ou Y ou U ou S ou PC

Page 112: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

112

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 :

Déplacement

Nul 4 bits 7

bits

15

bits

Acc

A

Acc

B

Acc

D

Pré- auto

décrémentation

Post_auto

décrémentation

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é

LDB $20, X

Instruction déplacement Base : X ou Y ou U ou S ou PC

Page 113: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

113

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 :

Déplacement

Nul 4 bits 7

bits

15

bits

Acc

A

Acc

B

Acc

D

Pré- auto

décrémentation

Post_auto

décrémentation

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é

LDB $20, X

Instruction déplacement Base : PC

Page 114: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

114

Merci de votre attention

FIN DE LA 1ère Partie

Page 115: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

115

Classification des

instructions

Page 116: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

116

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

Page 117: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

117

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

mise à 0, complémentation

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

Classification des instructions

Page 118: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

118

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

1. Les instructions arithmétiques

I. Instructions de traitement des données

Page 119: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

119

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

I. Instructions de traitement des données

Page 120: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

120

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

I. Instructions de traitement des données

Page 121: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

121

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

I. Instructions de traitement des données

Page 122: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

122

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

II Instructions de transfert des données

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

Page 123: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

123

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

II Instructions de transfert des données

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)

Page 124: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

124

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

II Instructions de transfert des données

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

Page 125: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

125

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

III Instructions de tests et branchements

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

Page 126: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

126

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

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)

N.B : La lettre (L) précédant le mnémonique précise qu’il s’agit d’un déplacement long (16 bits).

Page 127: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

127

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.

III Instructions de tests et branchements

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

Page 128: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

128

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

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

Instruction

Fonction

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

IV Instructions opérant sur les pointeurs

V. Traitement des interruptions

Page 129: Le Microprocesseur 6809khatory.com/photos/051216_163956_fMFsmF.pdf · 2 Naissance du microprocesseur • Le 15 novembre 1971 est célébré l'acte de naissance du microprocesseur.

129

Merci de votre attention

FIN