Vous êtes sur la page 1sur 7

Microprocesseur 6809

I. Objectifs :
 Maîtriser le fonctionnement d’un ensemble d’instructions Assembleur 6809 ;
 Construire des programmes en Code Machine 6809 ;
 Vérifier le fonctionnement de ces programmes en testant les registres 6809 et les
mémoires.
II. Présentation du MC 6809:
Le MC 09 est un système didactique autonome spécialement conçu pour la
formation au fonctionnement du microprocesseur 6809 et de ses périphériques.

Circuits Périphériques

Le MC 09 est équipé des principaux circuits périphériques du 6809 :

 PIA 6821: boîtier d’entrées/sorties parallèles


 TIMER 6840: circuit intégrant 3 compteurs 16 bits
 ACIA 6850: boîtier d’entrées/sorties séries
 VIA 6522: ce circuit est muni de 2 ports parallèles 8 bits, 2 timers 16 bits registre
à décalage, et 4 lignes de contrôle

Capacité Mémoire:

Le MC 09 est équipé de 5 supports pouvant accueillir :

 2 RAM de 2 ko
 3 EPROM de 4 ko de type 2732

Clavier et Afficheurs
Le MC 09 est équipé d’un clavier de 30 touches pour l’écriture de programmes en
langage machine. Les cases mémoires et les opérandes sont visualisées sur 6 afficheurs
réservés à cet effet. L’acquisition de la carte d’extension référencée 008 permet d’écrire
des programmes en assembleur sur PC et de télécharger le binaire dans la mémoire vive
du système.

III. Manipulation :
 Vérification du fonctionnement de
quelques instructions 6809:

Instruction Codage Mode


d’addressage
1-LDA #$12 86 12 Immédiat
2-LDA$37 B6 37 Étendu
3-LDA$0100 B6 0100 Etendu
4-LDA[$0100] A6 9F 0100 Entendu
5-LDA-3,X A6 1D indirect
6-STA $0100 B7 0100 Indexé
7-ADCA #$2C 89 2C Etendu
8-ABX 3A Immédiat
9- LDY-3,X 10 AE 1D Inhérent
10-LSRA 44 Indéxé
11-ASRA 47 Inhérent
12-ROLA 49 Inhérent
13-TFR X,Y 1F 12 Inhérent
14-PSHU A,X,Y 36 32 Inhérent
15-PULU A,X,Y 37 32 Inhérent
Inhérent

 Réalisation de programmes simples:


 Calcul de la somme de deux nombres situés respectivement aux adresses
$0F00 et $0F02 et qui met le résultat dans $0F04:
8 bits:

Programme Code Machine 6809


LDA $0F00 B6 0F00
ADDA $0F02 BB 0F02
STA $0F04 B7 0F04
SWI 3F

16 bits:

Programme Code Machine 6809


LDD $0F00 FC 0F00
ADDD $0F02 F3 0F02
STD $0F04 FD 0F04
SWI 3F

 Ecriture d’une zone mémoire


1) Programme qui met la valeur #$AA dans la zone mémoire allant de
$0F00 à $0F0F :

Programme Code Machine 6809


LDA #$AA 86 AA
LDX #$0F00 8E 0F 00
STA , X+ A7 80
CMP X #$0F10 8C 0F 10
BNE 26 F9
SWI 3F

 Déplacement d’une zone mémoire


Programme Code Machine 6809
LDX #$0100 8E 01 00
LDY#$0200 10 8E 02 00
LDA, X+ A6 80
STA,Y+ A7 A0
CMP X #$010F 8C 010F
BLS 23 F7
SWI 3F

 Calcul le nombre des valeurs negatives:


Programme Code Machine 6809
LDX#$0100 8E 0100
CLR B 5F
LDA,X+ A6 80
CMPA#$00 81 00
BGE 2C 01
INCB 5C
CMPX#$0110 8C 0110
BNE 26 F4
STB$0200 F7 0200
SWI 3F

 Calcul le nombre de valeurs paires:


Programme Code Machine 6809
LDX#$0100 8E 0100
CLR B 5F
LDA,X+ A6 80
ANDA#$01 84 01
CMPA#$00 81 00
BNE 26 01
INCB 5C
CMPX#$0110 8C 01 10
BNE 26 F2
STB$0200 F7 02 00
SWI 3F

CALCUL DE VALEUR SUPERIEUR A (+2)


Programme Code Machine 6809
LDX#$0100 8E 0100
CLRB 5F
LDA, X+ A6 80
CMPA#$02 81 02
BLS 23 05
CMPA#$0A 81 0A
BHS 24 01
INCB 5C
CMPX#$0110 8C 01 10
BNE 26 F0
STB$0200 F702 00
SWI 3F
CALCUL LE NOMMBRE SUPERIEUR A (-3):
Programme Code Machine 6809
LDX#$0100 8E 0100
LDB#$00 C6 00
LDA, X+ A6 80
CMPA#$FD 81 FD
BLT 2D 01
INCB 5C
CMPX#$010F 8C 01 0F
BLS 23 F4
STB$0200 F7 02 00
SWI 3F

 Comptage

1) Programme qui compte dans les adresses allant de $0100 à $0200,


le nombre de fois que l’on détecte la valeur FF

Programme Code Machine 6809

LDX #$0100 8E 01 00
LDB #$00 C6 00
LDA , X+ A6 80
CMPA #$FF 81 FF
BNE 26 FA
INCB 5C
CMPX #$0201 8C 02 01
BNE 26 FA
SWI 3F
 Operations arithmétiques:

1) Programme qui calcule la somme et la multiplication et qui met le


résultat final dans $0F20 et $0F21 :

Programme Code Machine 6809


LDA $0050 B6 00 50
ADDA $0080 BB 00 80
LDB $0090 F6 00 90
MUL 3D
STD $0F20 FD 0F 20
SWI 3F

CONCLUSION:

Au cours de ce TP,on s'est familiarisé


avec le microprocesseur 6809

avec ses diverses instructions .On a établi


aussi quelques remarques:

-Une petite faute dans le codage machine


provoque une erreur dans le

fonctionnement .
-L'exécution se fait directement après
l'écriture du programme et il faut

que la zone d'exécution soit différente de


celle du programme pour que

ce dernier s'exécute correctement.

Vous aimerez peut-être aussi