Vous êtes sur la page 1sur 7

Microprocesseur 6809

I. Objectifs :
Matriser le fonctionnement dun ensemble dinstructions Assembleur 6809 ;
Construire des programmes en Code Machine 6809 ;
Vrifier le fonctionnement de ces programmes en testant les registres 6809 et les
mmoires.

II. Prsentation du MC 6809:


Le MC 09 est un systme didactique autonome spcialement conu pour la
formation au fonctionnement du microprocesseur 6809 et de ses priphriques.

Circuits Priphriques

Le MC 09 est quip des principaux circuits priphriques du 6809 :

PIA 6821: botier dentres/sorties parallles


TIMER 6840: circuit intgrant 3 compteurs 16 bits
ACIA 6850: botier dentres/sorties sries
VIA 6522: ce circuit est muni de 2 ports parallles 8 bits, 2 timers 16 bits registre
dcalage, et 4 lignes de contrle

Capacit Mmoire:

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 dun clavier de 30 touches pour lcriture de programmes en


langage machine. Les cases mmoires et les oprandes sont visualises sur 6 afficheurs
rservs cet effet. Lacquisition de la carte dextension rfrence 008 permet dcrire
des programmes en assembleur sur PC et de tlcharger le binaire dans la mmoire vive
du systme.

III. Manipulation :

Vrification du fonctionnement de
quelques instructions 6809:

Instruction

Codage

1-LDA #$12
2-LDA$37
3-LDA$0100
4-LDA[$0100]
5-LDA-3,X
6-STA $0100
7-ADCA #$2C
8-ABX
9- LDY-3,X
10-LSRA
11-ASRA
12-ROLA
13-TFR X,Y
14-PSHU A,X,Y
15-PULU A,X,Y

86
12
B6
37
B6
0100
A6 9F 0100
A6
1D
B7
0100
89
2C
3A
10 AE 1D
44
47
49
1F 12
36 32
37 32

Mode
daddressage
Immdiat
tendu
Etendu
Entendu
indirect
Index
Etendu
Immdiat
Inhrent
Indx
Inhrent
Inhrent
Inhrent
Inhrent
Inhrent
Inhrent

Ralisation de programmes simples:

Calcul de la somme de deux nombres situs respectivement aux adresses


$0F00 et $0F02 et qui met le rsultat dans $0F04:

8 bits:
Programme

LDA $0F00
ADDA $0F02
STA $0F04

Code Machine 6809


B6 0F00
BB 0F02
B7 0F04

SWI

3F

16 bits:
Programme

Code Machine 6809

LDD $0F00
ADDD $0F02
STD $0F04
SWI

FC 0F00
F3 0F02
FD 0F04
3F

Ecriture dune zone mmoire


1) Programme qui met la valeur #$AA dans la zone mmoire allant de
$0F00 $0F0F :

Programme
LDA #$AA
LDX #$0F00
STA , X+
CMP X #$0F10
BNE
SWI

Code Machine 6809


86
8E
A7
8C
26
3F

AA
0F 00
80
0F 10
F9

Dplacement dune zone mmoire


Programme
Code Machine 6809
LDX #$0100
LDY#$0200
LDA, X+
STA,Y+
CMP X #$010F
BLS
SWI

8E
10 8E
A6
A7
8C
23
3F

01 00
02 00
80
A0
010F
F7

Calcul le nombre des valeurs negatives:


Programme
Code Machine 6809
LDX#$0100

8E 0100

CLR B
LDA,X+
CMPA#$00
BGE
INCB
CMPX#$0110
BNE
STB$0200
SWI

5F
A6 80
81 00
2C 01
5C
8C 0110
26 F4
F7 0200
3F

Calcul le nombre de valeurs paires:


Programme
Code Machine 6809
LDX#$0100
CLR B
LDA,X+
ANDA#$01
CMPA#$00
BNE
INCB
CMPX#$0110
BNE
STB$0200
SWI

8E 0100
5F
A6 80
84 01
81 00
26 01
5C
8C 01 10
26 F2
F7 02 00
3F

CALCUL DE VALEUR SUPERIEUR A (+2)


Programme
Code Machine 6809
LDX#$0100
CLRB
LDA, X+
CMPA#$02
BLS
CMPA#$0A
BHS
INCB
CMPX#$0110
BNE
STB$0200
SWI

8E 0100
5F
A6 80
81 02
23 05
81 0A
24 01
5C
8C 01 10
26 F0
F702 00
3F

CALCUL LE NOMMBRE SUPERIEUR A (-3):


Programme
Code Machine 6809
LDX#$0100
LDB#$00
LDA, X+
CMPA#$FD
BLT
INCB
CMPX#$010F
BLS
STB$0200
SWI

8E 0100
C6 00
A6 80
81 FD
2D 01
5C
8C 01 0F
23 F4
F7 02 00
3F

Comptage

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


le nombre de fois que lon dtecte la valeur FF

Programme
LDX #$0100
LDB #$00
LDA , X+
CMPA #$FF
BNE
INCB
CMPX #$0201
BNE
SWI

Code Machine 6809


8E 01 00
C6 00
A6 80
81
FF
26
FA
5C
8C 02 01
26
FA
3F

Operations arithmtiques:
1) Programme qui calcule la somme et la multiplication et qui met le
rsultat final dans $0F20 et $0F21 :

Programme
LDA $0050
ADDA $0080
LDB $0090
MUL
STD $0F20
SWI

Code Machine 6809


B6 00 50
BB 00 80
F6 00 90
3D
FD 0F 20
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'excution se fait directement aprs


l'criture du programme et il faut
que la zone d'excution soit diffrente de
celle du programme pour que
ce dernier s'excute correctement.

Vous aimerez peut-être aussi