Académique Documents
Professionnel Documents
Culture Documents
Cours 6809 CI
Cours 6809 CI
"Microprocesseur
6809"
Plan du cours
I.1 Introduction
I.2 Architecture du microprocesseur
I.3 Architecture externe
Le schma fonctionnel
LUAL
Laccumulateur
Le compteur d'instructions
Le registre d'adresses
Le registre d'instructions
Le registre d'tat
Les registres temporaires de l'UAL
Les registres gnraux
La logique de contrle
II. Introduction au jeu d'instructions du microprocesseur
Le jeu d'instructions
Le code mnmonique
Les modes d'adressage
la pile
III. Les interruptions
IV. Les interfaces
le P.I.A. (Interface parallle)
Les mmoires
l'A.C.I.A. (Interface srie)
Page 1
Historique
Le microprocesseur est l'aboutissement de progrs technologiques tant dans les
domaines mcanique, informatique et lectronique.
Quelques dates :
1690 : Pascal invente la machine calculer entirement
mcanique (addition et soustraction)
1800 : Jacquart invente le mtier tisser avec cartes
perfores.
1810 : Invention de l'orgue de barbarie (succession de cartes
perfores).
1940 : Premier ordinateur relais mcaniques (Navy)
1946 : Premier ordinateur tubes vide (1800).
1948 : Progrs de la physique quantique avec dcouverte de
l'effet transistor.
1950 : Ralisation des premires mmoires ferrites.
1958 : Dveloppement du premier circuit intgr (4 5 tr/puce).
1964 : Ordinateur transistors ( base de circuits TTL : 50
transistors dans une puce).
1970 : Premiers circuits L.S.I.- naissance du premier
microprocesseur 4 bits avec 1000 transistors sur une puce.
1975 : Naissance du microprocesseur Motorola 6800 (8 bits).
1980 : Apparition du microprocesseur 16 bits avec 50000
transistors sur la puce.
1984 : Apparition du microprocesseur 32 bits avec un million de
transistor sur la puce.
1994 : Apparition du Pentium avec 3,5 millions de transistors.
C'est en 1971 que le premier microprocesseur est sorti des laboratoires d'Intel.
Travaillant sur 4 bits et d'une puissance faible, l'intrt de ce nouveau
composant lectronique ne fut pas vident jusqu' ce que l'ide de le
transformer en calculatrice fut trouve.
Sept ans plus tard, l'arrive du 8088 multiplie dj cette puissance de calcul par
200.
Cette date correspond la naissance des vritables micro-ordinateurs. Arrivent
ensuite les microprocesseurs 68000 et 80286 (16 bits) avec les Macintosh et
P.C. que nous connaissons. Ils ont introduit l'image et le son.
Ensuite, tout n'est plus qu'une question de course la puissance de calcul.
Chaque bond technologique apporte sont innovation. Aujourd'hui, le multimdia
puis le 3 D et le temps rel. Demain, le monde virtuel.
Page 2
Principes de base
Les premiers automatismes taient raliss partir de la logique cble selon le
synoptique suivant :
Les systmes logique cble sont conus l'aide de circuits intgrs logiques.
Certains de ces circuits font appel :
(Les sorties dpendent toujours des entres mais aussi des tats antrieurs)
Page 3
Page 4
Droulement :
Page 5
Le microprocesseur
Dfinition : Le microprocesseur, not aussi M.P.U. (Microprocessor unit) ou
encore C.P.U. (Central Processing Unit) est un circuit intgr complexe
appartenant la famille des VLSI (Very Large Scale Intgration) capable
d'effectuer squentiellement et automatiquement des suites d'oprations
lmentaires.
Son rle : Ce circuit remplit deux fonctions essentielles :
Le contrle du systme
Cette fonction se traduit par des oprations de dcodage et d'excution des
ordres exprims sous forme d'instruction.
Page 6
Page 7
Page 8
Prsentation du brochage :
Page 9
1er cas :
Le microprocesseur est en fonctionnement normal, il gre les bus d'adresses
et de donnes.
2eme cas :
Le microprocesseur est en phase de reconnaissance d'interruption pendant
deux cycles. Cet tat correspond la recherche des vecteurs d'interruption :
Re set , NMI , IRQ , SW1, 2 et 3.
3eme cas :
Ce signal apparat lorsque le microprocesseur rencontre l'instruction de
synchronisation externe (niveau bas sur SYNC). Il attend alors cette
Master en Contrle et instrumentation
Page 10
synchronisation sur une des lignes d'interruption. Les bus sont en haute
impdance pendant ce temps.
4eme cas :
Correspond l'arrt du microprocesseur (niveau bas sur HALT ). Le
microprocesseur laisse la gestion des bus des donnes et des adresses un
circuit annexe (contrleur de DMA). Les bus sont en haute impdance.
La ligne BA au niveau haut indique que les bus sont en haute impdance.
Broche d'initialisation Re set : Un niveau bas sur cette broche entrane
une rinitialisation complte du circuit.
Consquences :
Linstruction en cours est arrte ;
Le registre de pagination (DP) est mis zro ;
Les interruptions IRQ et FIRQ sont masques ;
Linterruption non masquable NMI est dsarme ;
Pour que cette ligne soit active, elle doit tre maintenue un niveau bas
durant un temps suffisamment long (plusieurs cycles d'horloge).
Page 11
Page 12
Page 13
BUSY (Occupation des bus) : Sortie mise au niveau haut pendant les
instructions du type : lecture, criture et excution du premier octet
d'un oprande constitu de deux octets (une adresse par exemple).
Dans un systme multiprocesseur, ce signal indique le besoin pour un
microprocesseur de disposer des bus au cours du prochain cycle pour
assurer l'intgrit de l'opration en cours. Cela vite l'adressage
simultan d'une mme zone mmoire par 2 microprocesseurs.
On ne doit pas activer TSC quand BUSY est actif.
Exemple d'application :
Page 14
Page 15
Page 16
L'accumulateur :
C'est le registre le plus important du microprocesseur, il sert
systmatiquement lorsque le microprocesseur a besoin de "manipuler" des
donnes. La plupart des oprations logiques et arithmtiques sur les donnes
font appel au couple "UAL - accumulateur" selon la procdure suivante:
Page 17
Le Compteur d'Instructions :
Appel encore Compteur Programme (P.C.) ou Compteur Ordinal (C.O.)
sont utiliss pour les modes d'adressage index. Les donnes - 16 bitscontenues dans ces registres servent de pointeur de donnes (adresses). Ces
adresses "peuvent tre modifies" par une constante, prise comme valeur de
dplacement (offset) qui permet alors de calculer une adresse effective.
[Le pivot + offset] cela revient [X] ou [Y] + le dplacement, le contenu de
ces registres peut-tre incrment ou dcrment pour grer des donnes
stockes sous forme de table.
Les registres S et U (registres 16 bits) :
- Le pointeur de pile S (Systme) est utilis automatiquement par le
microprocesseur pour mmoriser l'tat de tous ces registres internes dans le
cas o il doit excuter un sous programme (d'interruption ou non).
- Le pointeur de pile U (Utilisateur) est gr exclusivement par le
programmeur pour effectuer, avec facilit, le passage des paramtres entre
programmes et sous programmes, (nanmoins, il peut-tre utilis pour
sauvegarder un contexte mais cette fois, ce n'est pas automatique).
Les registre U et S peuvent faire office de pointeurs - registres d'index.
Gestion de ces pointeurs :
Ces registres "pointent" toujours le haut de la zone mmoire qui leur est
attribue, (haut dans le sens adresse la plus grande).
On appelle cette zone une pile. Cette pile fonctionne en mode LIFO (Last In
First Out).
Master en Contrle et instrumentation
Page 18
Page 19
Page 20
Code d'Instruction :
Code opration
Octet1
Donne immdiate ou
Octet2
adresse dire cte /relative
Code opration
Octet1
Octet2
Octet3
Octet2
Donne immdiate ou
Octet3
adresse dire cte /relative
Code opration
Octet1
Code opration
{
{
Octet1
Octet2
Octet3
Octet4
Page 21
Octeti+1
Octeti+2
Octeti+3
code
post-octet
code oprande
facultatif
adresse
opratoire
ordre
oprations : arithmtique
logique et de transfert
(modes d'adressage)
extraction- excution
Extraction : lecture de la donne en mmoire, = . avec priode de
l'horloge E
Il y a autant d'extractions que d'octets (code opratoire et code oprande)
constituant l'instruction.
Si m octets alors = .
Page 22
R/W
Registre
d'Adre sse s
Registre s
M moi re s Pri phri ques
e xtri eur
Compteur
A.L.U.
d'Instructions
i nt ri eur
Page 23
Le jeu d'Instructions
Les instructions
caractristiques.
sont
rparties
en
groupes
dtermins
par
leurs
Classification :
Instructions de traitement des donnes
Instructions arithmtiques
1. Addition (DAA, ABX, ADC)
2. Multiplication (MUL)
3. Soustraction (SBC, SUB)
Exemples :
ADDD #$1200 avec (A)=$10 et (B)=$01, c--d (D)=$1001
Instructions logiques
1. Rotation droite et gauche (ROL, ROR)
2. Dcalage droite et gauche (ASR, LSR et ASL, LSL)
3. Les fonctions logiques de base (AND, OR, EOR)
4. Lincrmentation/dcrmentation et complmentation (COM - NEG NOP - INC - DEC - CLR)
Exemples :
AND B # $55 avec (B)= $AA
Page 24
ASLA
avec (A)=$80
ASRA
ROLA
Page 25
TFR A, B
LDA #$80
LDX #$1000
si
Page 26
Exemple :
CMPA
BCC
LDA
Loop LDB
END
#$20
Loop
#$10
#$AA
#$10
$1000
SP1
#$55
$1002
#$55
$2000
Page 27
le
pointeur
est
automatiquement
Dfinition d'une pile : Zone mmoire RAM gre par des pointeurs qui
permettent de transfrer rapidement des donnes dans des cases mmoires
selon un protocole bien tabli.
Ordre des actions :
Toujours suivie de loprande qui permet de slectionner les registres :
b7
PC U/S
b0
X
DP
CC R
e mpi lem en t
dpile me nt
Page 28
inhrent ou implicite
immdiat
tendu
tendu indirect
direct
par registre
index direct
index indirect
relatif
Page 29
Le code opratoire est immdiatement suivi dans la mmoire dun octet qui
dfinit un registre ou le jeu de registres devant tre utiliss par linstruction.
Cet octet est appel post-octet.
Le tableau ci-dessous prsente le codage de ce post-octet :
b7
b4
b3
b0
Source
Post-octet transfert/change
Exemple :
Destinataire
code
Registre
0000
0001
0010
0011
0100
0101
PC
1000
1001
1010
CCR
1011
DP
CCR E F H I N Z V C
D
{AB
7
1F
12
X
Y
S
U
PC
Adr
Adr+1
Adr+2
DP
15
Page 30
CCR E F H I N Z V C
D
X
Y
S
U
PC
{ AB
DP
35
7
adr
15
86
35
Adr
Adr+1
Adr+2
LDY#$1997
CCR E F H I N Z V C
D
X
Y
S
U
PC
{ AB
10
8E
19
1997
DP
15
97
adr
7
Adr+4
Adr
Adr+1
Adr+2
Adr+3
Adr+4
Page 31
Remarque : Avec ce mode, la mmoire est dcoupe en 256 pages de 256 octets
chacune.
Ce mode est intressant dans le cadre des systmes dexploitation temps rel
multitche, o on alloue chaque tche une page.
Exemples :
LDA $97
Charge l'Accumulateur A avec le contenu dont l'adresse est forme
par [DP] et l'oprande
CCR E F H I N Z V C
D
adr
Adr+2
DP
Adr
Adr+1
X
Y
S
U
PC
96
97
37
A
B
37
1997
19
15
LDY $97
Charge le registre Y avec le contenu sur 16 bits dont les adresses
sont [DP] et partie basse et partie basse+1.
CCR E F H I N Z V C
D
10
9E
97
A
B
X
Y
S
U
PC
Adr
Adr+1
Adr+2
1960
adr
Adr+3
DP
15
19
7
19
60
1997
1998
Page 32
CCR E F H I N Z V C
A
B
X
Y
S
U
PC
B6
19
97
37
adr
Adr
Adr+1
Adr+2
Adr+3
Adr+3
DP
15
37
1997
LDY $1997
Charge le registre Y avec le contenu de ladresse 1995.
CCR E F H I N Z V C
D
X
Y
S
U
PC
10
BE
19
A
B
0
97
1960
Adr
Adr+1
Adr+2
Adr+3
Adr+4
adr
Adr+4
DP
15
19
60
1997
1998
Page 33
A
B
A6
9F
19
1960
37
X
Y
S
U
PC
37
97
Adr
Adr+1
Adr+2
Adr+3
Adr+4
adr
Adr+4
DP
15
19
60
1997
1998
LDY [$1997]
Chargement du registre Y avec le contenu dont l'adresse
(partie haute) se trouve en $1997.
CCR E F H I N Z V C
D
{AB
7
X
Y
S
U
PC
37
60
10
AE
9F
1960
1961
3760
adr
19
Adr+2
Adr+3
97
Adr+4
19
60
1997
1998
Adr+4
DP
15
Adr
Adr+1
Page 34
Adressage index
Deux possibilits :
Adressage index direct et indirect
Dans ce mode, les registres pointeurs (X, Y, U, S et PC) sont utiliss pour
effectuer le calcul de ladresse effective de la donne recherche.
Il existe 5 types dadressage index.
Ladressage index avec dplacement nul
Ladressage index avec dplacement constant (non nul).
Ladressage index avec dplacement accumulateur
Ladressage index avec auto-incrmentation/dcrmentation
Ladressage index relatif au Compteur Programme (PC)
Loctet qui suit le code opratoire (le post-octet) spcifie :
La nature de lindexation
Le type dadressage (direct ou indirect)
Le registre pointeur utilis.
Loctet qui suit le code opratoire (le post-octet) spcifie :
1. La nature de lindexation
2. Le type dadressage (direct ou indirect)
3. Le registre pointeur utilis.
Le tableau ci-joint montre le format de ce post-octet.
Page 35
Page 36
Type
Forms
No Offset
5-bits off
8-bits off
16-bits off
A reg offset
B reg offset
Dreg offset
Incr by 1
Incr by 2
Decr by 1
Decr by 2
8-bits offset
16-bits off
16-bits adr
Accumulator offset
from R (2s complement
offsets)
Auto
increment/decrement
R
Constant offset from
PC (2s complement off)
Extended indirect
,R
n,R
n,R
n,R
A,R
B,R
D,R
,R+
,R++
,-R
,--R
n,PCR
n,PCR
-
1RR00100
0RRnnnnn
1RR01000
1RR01001
1RR00110
1RR00101
1RR01011
1RR00000
1RR00001
1RR00010
1RR00011
1xx01100
1xx11100
-
+
#
indirect
Assembler
Postbyt
form
opcode
0
1
1
4
1
1
4
2
3
2
3
1
5
-
0
0
1
2
0
0
0
0
0
0
0
1
2
-
[,R]
1RR10100
Defaults to 8-bits
[n,R]
1RR11000
[n,R]
1RR11001
[A,R]
1RR10110
[B,R]
1RR10101
[D,R]
1RR11011
Not allowed
[,R++]
1RR10001
Not allowed
[,--R]
1RR10011
[n,PCR]
1xx11100
[n,PCR]
1xx11101
[n]
10011111
+
#
4
7
4
4
7
1
2
0
0
0
6
4
8
5
0
1
2
2
R= X, Y, U or S
X= dont care
RR
00=X
01=Y
10=U
11=S
A
B
A6
84
37
7
Adr+2
1997
adr
Adr+1
DP
15
Adr
Adr+1
37
1997
Page 37
Syntaxe :
Code
A6
1E soit 0 00 1 1110
Le dplacement s'exprime sur 7 bits + un bit de signe. Le dplacement est
compris dans l'intervalle [-1281O 1271O]. Un octet supplmentaire aprs le
post-octet est ncessaire.
Code
A6
88 soit 1 00 0 1000
35 (5316)
Code
A6
89 soit 1 00 0 1001
09
97
Adressage index avec dplacement accumulateur.
Page 38
CCR E F H I N Z V C
D
A
B
A6
85
00
37
X
Y
S
U
PC
Adr
Adr+1
Adr+2
1960
+
adr
adr+2
00
1997
DP
15
LDX D,Y
CCR E F H I N Z V C
D
A
B
X
Y
S
U
PC
AE
AB
09
97
0
2000
1000
Adr+2
adr
adr+2
DP
15
Adr
Adr+1
20
00
1997
1998
Page 39
Code
A6
82 soit 1 00 0 0010
Code
10
AE
83 soit 1 00 0 0011
Code
A6
80 soit 1 00 0 0000
Page 40
Code
EC
81 soit 1 00 0 0001
$1000
adr
adr+1
adr+2
adr+3
A6
8D
09
93
soit 1 00 0 1101
Justification :
Si adr=$1000 alors destination ($1997) est gale $1997-$1004 soit $993.
Master en Contrle et instrumentation
Page 41
adr
adr+1
adr+2
A6
8C
F0
Page 42
CCR E F H I N Z V C
D
30
A
B
X
Y
S
U
PC
8D
00
11
1122
adr
Adr = $1000
Adr+1
Adr+2
Adr+3
Adr+4
adr+4
DP
15
11
12
ETIQ = $2015
Page 43
CCR E F H I N Z V C
D
X
Y
S
U
PC
A6
99
09
60
37
A
B
1OOO
adr
Adr
Adr+1
Adr+2
Adr+3
Adr+4
adr+4
DP
15
19
97
1960
1961
37
1997
Quelques exemples :
Adressage index indirect avec dplacement nul.
LDA [0,X]
Chargement de A avec le contenu mmoire dont ladresse est [X, X +1].
Adressage index indirect avec dplacement constant.
LDA [$35,X]
Chargement de A avec le contenu mmoire dont ladresse est [X+$35, X +$36].
Adressage index indirect avec dplacement accumulateur.
Le dplacement exprim en complment deux est contenu dans A, B ou D.
LDU [D, Y]
Chargement du registre U avec le contenu mmoire dont ladresse est
[Y+D] et [Y+D+1]
Adressage index indirect avec double auto-incrmentation/dcrmentation.
ADDA [ , U++]
Master en Contrle et instrumentation
Page 44
code opratoire
1 octet
1 octet + $10
code oprande
1 octet
2 octets
Page 45
Quelques exemples :
Adressage relatif court avec un dplacement positif.
BEQ LOOP
branchement si Z=1
?
CCR E F H I N 1 V C
D
27
A
B
33
0
X
Y
S
U
PC
Adr = $1960
Adr+1
Adr+2
+35
adr
op
Adr+2
$1997
DP
15
?
CCR E F H I N 1 V C
D
10
A
B
X
Y
S
U
PC
26
16
7B
adr
Adr+2
Adr+3
Adr+4
+1675
Adr+4
DP
15
Adr = $1997
Adr+1
op
7
$3010
Page 46
Principe de fonctionnement :
Cellules mmoires
code opratoire
Compteur ordinal
Registre d'Instruction
Dcodage
Logique de contrle
Squenceur
de commandes
Excution
Fonctionnement squentiel
La ralisation de toute instruction s'effectue selon le cycle extractionexcution qui se dcompose comme suit :
1er temps : Phase d'extraction
Recherche de linstruction suivie du dcodage
2me temps : Phase d'excution
Excution du code opratoire
Cette tape est plus ou moins longue suivant la complexit de l'instruction.
Page 47
Excution
Horloge E
cycle machine
dpot de
l'adresse
puis
stockage
du code
dans le R.I.
dcodage
du code
ralisation de
l'action
demande
Simulations :
Premier exemple :
$0000
$0002
LDA
ADDA
#$10
#$29
$0004
NOP
12
86
8B
10
29
Deuxime exemple :
$0000
$0003
$0006
LDA
ADDA
STA
$0014
$0016
$0018
#
3
3
3
$0009
$000C
$000F
$0012
LDA
ADCA
STA
BRA
$0015
$0017
$0019
$FE
3
3
3
2
~
5
5
5
5
5
5
3
Page 48
Commentaire :
PC
00
0C
registre interne
intermdiaire
registre
des
adresses
00
00
00
15
0A
0B
Page 49
,U++
,--U
quivalent
quivalent
PULU
PSHU
X
X
LDA
STA
,U+
,-U
quivalent
quivalent
PULU
PSHU
A
A
Illustration :
Sauvegarde
du contexte
dans la pile U
Procdure
Appel
procdure
Programme
d'interruption
Sauvegarde
du contexte
dans la pile S
Page 50
Page 51
Exemple : une simple instruction du type WRITELN peut faire appel une
centaine dinstruction. Ainsi plus despace-mmoire est ncessaire.
Gain de temps lexcution : Plus dinstructions de base implique un temps
dexcution plus lent moins de disposer de microprocesseur puissant
(rapide) avec un grand champ mmoire.
Le langage dassemblage
Ce langage est lintermdiaire entre un langage volu comme C ou Pascal et le
langage machine. Le langage dassemblage est li au microprocesseur. Chaque
processeur possde son propre ensemble dinstructions.
Ses avantages :
minimise le code
meilleur contrle sur le matriel.
[bien adapt lcriture des routines dentres/sorties]
Lassembleur est un petit compilateur. Ce langage sappuie sur labrviation de
terme anglais pour chaque instruction.
Exemple de la fonction de remise zro (CLEAR) : CLR
Vocabulaire
Le langage dassemblage : C'est un langage constitu dinstructions et de
pseudo-instructions. Un programme crit dans ce type de langage est une
suite de lignes symboliques crites dans un ordre logique.
Lassembleur : Cest un programme de traduction qui traite chaque ligne du
programme source pour fournir le code machine. Il dtecte les erreurs. Le
rsultat de son travail sappelle le programme objet.
Macro-assembleur : Cest un assembleur qui permet de traiter des macroinstructions : ensemble dinstructions regroupes sous formes de fonction.
Cross-assembleur : Cest un assembleur qui permet de dvelopper en
langage dassemblage, une application utilisant un microprocesseur donn
Master en Contrle et instrumentation
Page 52
Etiquette
Code
Code
Commentaire
opratoire
oprande
_________________________________________
i+2
j+2
Page 53
Page 54
SET est semblable EQU except que laffectation est temporaire. Les
symboles dfinis avec cette directive peuvent tre nouveau dfinis par la suite
dans le mme programme.
Exemples :
ARG
ARG
ARG
SET
SET
SET
$2
ARG*$2
ARG*ARG
ARG=$2
ARG=$4
ARG=$10(1610)
ORG Expression
Page 55
Rle :
Dfinition dune adresse dorigine.
Charge le PC la valeur spcifie par lexpression situe dans le champ oprande.
Remarque : Plusieurs ORG peuvent-tre utiliss dans un mme programme
source.
On structure ainsi lespace mmoire en blocs :
le programme principal
les sous programmes
la gestion des interfaces
Chaque bloc est initialis par un ORG.
RMB : Reserve Memory Bytes (Rservation doctets en mmoire)
Syntaxe :
Symbole
RMB
Expression
Rle :
Provoque lors de lassemblage un "saut" du PC, dun nombre doctets gal
la valeur de lexpression.
Le but tant de rserver une zone mmoire pour un usage particulier.
FCB : Form Constant Byte (dfinition dune constante dun octet)
Syntaxe :
Symbole
Rle :
Page 56
Exemples :
DATA
DIX
ORG
FCB
FCB
FCB
FCB
EQU
LDX
END
$4000
1,$62+$48,'A,'B
$FF
'4,$4
DIX+2
$A
DATA
$4000
01
AA
41
42
FF
34
04
0C
8E
40
00
FDB : Form Double Byte Constant (dfinition dune constante de deux octets)
Syntaxe :
Symbole
FDB
Exp1, Exp2,...
Rle :
DIX
FIN
ORG
FDB
FDB
FDB
FDB
FDB
FDB
EQU
$4000
$1997,$5432+$ABCD
'A,'B
'5,$5
10,$10
FIN
0
4
$4000
19
97
FF
FF
00
41
00
42
00
35
00
05
00
0A
00
10
00
04
00
00
Symbole
FCC
Page 57
Rle :
Inscrit en mmoire le code ASCII des caractres situs dans le champ
oprande entre les dlimiteurs. Et PC = PC+1 pour chaque caractre inscrit.
Remarque :
Les deux dlimiteurs doivent tre identiques et peuvent tre n'importe lequel
des caractres imprimables (on prend en gnral //).
L'expression
FCC /A/
est quivalent
FCB 'A
Illustration :
MESS
FCC
FCC
FCC
FCC
/FIN/
'LUNDI'
#MARDI#
252
$2000
46
49
4E
4C
55
4E
44
49
4D
41
52
44
49
35
END
Rle :
PAGE
Rle :
NAME PMAK
Page 58
Rle :
Cette directive permet de donner un nom au programme qui apparait en
tte de page.
OPT : Option d'assemblage
Syntaxe :
OPT
ABS
Rle :
Cette directive fournit des complments d'informations lors de
l'assemblage. Les options sont crites dans le champ oprande et sont spares
par des virgules.
Diffrentes options :
ABS : ABSolu, le programme est crit avec un adressage absolu.
REL : RELogeable, le programme est crit avec un adressage relatif.
CRE : permet d'obtenir la table dite des rfrences croises.
L : demande l'impression du listing aprs opration d'assemblage termin.
Lopration dassemblage :
Elle seffectue gnralement en deux tapes (2 passes).
1re passe :
Consiste en une lecture de lensemble du programme source.
Au cours de cette phase, 3 analyses sont effectues :
Analyse lexicographique :
Compare le code opratoire une table interne (fichier comprenant les codes).
Analyse syntaxique :
Cette analyse dtecte :
Analyse smantique :
Cette analyse permet de dire si une ligne syntaxiquement correcte un sens.
Dtecte un symbole non dfini par ailleurs.
Lassembleur construit la table des symboles employs. Il regroupe tous les
symboles dfinis par le programmeur en leur donnant une valeur chacun deux
(Cration de la table des rfrences croiss).
Il gnre un code intermdiaire qui servira au second passage.
Les directives dassemblage sont galement interprtes.
2me passe :
Lassembleur gnre le code objet en tenant compte des adresses et des
donnes relles qui figurent dans la table des symboles.
3me passe :
Cette phase fournit le listing avec son code objet.
Page 60
Page 61
Page 62
Page 63
EOR
EXG
INC
JMP
JSR
DECA
DECB
DEC
EORA
EORB
R1,R2
INCA
INCB
INC
88 2
C8 2
1E 8
0A
2 98
2 D8
2
0C
0E
9D
19 2 1 Decimal Adjust A
4A 2 1 A = A 1
5A 2 1 B = B 1
6 2 6A 6+ 2+ 7A 7 3
M=M 1
4 2 A8 4+ 2+ B8 5 3
A = A XOR M
4 2 E8 4+ 2+ F8 5 3
B = M XOR B
exchange R1,R2
4C 2 1 A = A + 1
5C 2 1 B = B + 1
6 2 6C 6+ 2+ 7C 7 3
M=M+1
3 2 6E 3+ 2+ 7E 4 3
pc = EA
7 2 AD 7+ 2+ BD 8 3
jump to subroutine
+
+
+
+
+
+
+0 +
++
++
++
+0
+0
+++
+++
+++
Page 64
40
50
00 6 2 60 6+ 2+ 70 7 3
NOP
OR
12
ORA
ORB
ORCC
PSHS
PSH
PSHU
PULS
PUL
PULU
ROL
8A
CA
1A
34
2
2
3
5+
2 9A 4 2 AA 4+ 2+ BA 5 3
2 DA 4 2 EA 4+ 2+ FA 5 3
2
2
36 5+ 2
35 5+ 2
37 5+ 2
ROLA
ROLB
49
59
S = M:M+1
++0
U = M:M+1
X = M:M+1
++0
++0
Y = M:M+1
++0
S = EA
U = EA
X = EA
Y = EA
+
+
+
0
0
0
Logical
shift
left
Logical
shift
right
D = A*B
(Unsigned)
2 1 A = !A + 1
2 1 B = !B + 1
M = !M + 1
2 1 No Operation
A = A || M
B = B || M
C = CC || IMM
Push Registers
on S Stack
Push Registers
on U Stack
Pull Registers
from S Stack
Pull Registers
from U Stack
2 1 Rotate left thru
carry
2 1
3D 11 1
NEGA
NEGB
NEG
Description
A=M
B=M
D = M:M+1
CC bit
5 3 21 0
HNZVC
+ +0
+ +0
++0
+
+
+++
+++
+++
+ +
+ +
+ +
+
8 ++++
8 ++++
8 ++++
+ +0
+ +0
? ? ? ? ?
++++
++++
Page 65
ROR
ROL
RORA
RORB
ROR
09 6 2 69 6+ 2+ 79 7 3
46
56
06 6 2 66 6+ 2+ 76 7 3
RTI
SBCA
SBCB
82 2 2 92 4 2 A2
C2 2 2 D2 4 2 E2
STA
STB
STD
97 4 2 A7
D7 4 2 E7
DD 5 2 ED
10 6 3 10
DF
EF
DF 5 2 EF
9F 5 2 AF
10 6 3 10
9F
AF
80 2 2 90 4 2 A0
C0 2 2 D0 4 2 E0
83 4 3 93 6 2 A3
SEX
ST
STS
STU
STX
STY
SUB
SUBA
SUBB
SUBD
SWI
SWI
SWI2
SWI3
SYNC
TFR
TST
2 1
Rotate Right
2 1
thru carry
+
0
0
0
+++
+ +
+ +
+ +
Return from
? ? ? ? ?
Interrupt
Return from
39 5 1
subroutine
4+ 2+ B2 5 3
A=A-M-C 8 + + + +
4+ 2+ F2 5 3
B=B-M-C 8 + + + +
Sign extend B
1D 2 1
++0
into A
4+ 2+ B7 5 3
M=A
+ +0
4+ 2+ F7 5 3
M=B
+ +0
5+ 2+ FD 6 3
M:M+1 = D
++0
6+ 3+ 10 7 4
M:M+1 = S
++0
FF
5+ 2+ FF 6 3
M:M+1 = U
++0
5+ 2+ BF 6 3
M:M+1 = X
++0
6+ 3+ 10 7 4
M:M+1 = Y
++0
BF
4+ 2+ B0 5 3
A=A-M 8 + + + +
4+ 2+ F0 5 3
B=B-M
8 ++++
6+ 2+ B3 7 3
D = D - M:M+1 + + + +
3F 19 1
Software
interrupt 1
10 20 2
Software
3F
interrupt 2
11 20 2
Software
3F
interrupt 3
>=
Synchronize to
13
1
4
Interrupt
R2 = R1
4D 2 1
Test A
++0
5D 2 1
Test B
++0
6+ 2+ 7D 7 3
Test M
++0
3B 6/15 1
RTS
SBC
R1,R2
TSTA
TSTB
TST
1F 6 2
0D 6 2 6D
Page 66
Legend:
+ Test and set if true,
OP Operation Code(Hexadecimal)
cleared otherwise
= Transfer from
- Not Affected
~ Number of MPU Cycles
H Half carry (from bit 3)
CC Condition Code Register # Number of Program Bytes
N Negative (sign bit):
: Concatenation
+ Arithmetic Plus
Z Zero (Reset)
|| Logical or
Arithmetic Minus
V Overflow, 2's complement && Logical and
* Multiply
C Carry from ALU
EOR Logical Exclusive or EA Effective Address:w
! Complement of M
Notes:
1. This column gives a base cycle and byte count. To obtain total count, add the values
obtained from the INDEXED ADDRESSING MODE table, in Appendix F.
2. Rl and R2 may be any pair of 8 bit or any pair of 16 bit registers.
The 8 bit registers are: A, B, CC, DP
The 16 bit registers are: X, Y, U, S, D, PC
3. EA is the effective address.
4. The PSH and PUL instructions require 5 cycles plus 1 cycle for each byte pushed or pulled.
5. 5(6) means: 5 cycles if branch not taken, 6 cycles if taken (Branch instructions.
6. SWI sets I and F bits. SW12 and SW13 do not affect I and F.
7. Conditions Codes set as a direct result of the instruction.
8. Value of half carry flag is undefined.
9. Special Case Carry set if b7 is SET.
Instruction
BCC
Forms
BCC
LBCC
BCS
BCS
LBCS
BEQ
BEQ
LBEQ
BGE
BGE
LBGE
BGT
BGT
LBGT
Mode
Relative
OP
Description
24 3 /
2 Branch C=O
10 5l6)
4 Long Branch
24
C=O
25 3
2 Branch C= 1
10 56)
4 Long Branch
25
C=l
27 3
2 Branch Z=O
10 5(6)
4 Long Branch
27
Z=O
2C 3
2 Branch2Zero
10 5(6)
4 Long Branch2Zero
2C
2E 3
2 Branch > Zero
10 5(6)
4 Long Branch>Zero
2E
5 3 2 1 0
H N Z V C
Page 67
BHI
LBHI
BHS
BHS
LBHS
BLE
BLE
LBLE
BLO
BLO
LBLO
BLS
BLS
LBLS
BLT
BLT
LBLT
BMI
BMI
LBMI
BNE
BNE
LBNE
BPL
BPL
LBPL
BRA
BRN
BSR
BVC
BVS
BRA
LBRA
BRN
LBRN
BSR
LBSR
BVC
LBVC
BVS
LBVS
22 3
10 5(6)
22
24 3
10
24
2F
10
2F
25
10
25
23
10
23
2D
10
2D
2B
10
2B
26
10
26
2A
10
2A
20
16
21
10
21
8D
17
28
10
28
29
10
29
2 Branch rligher
4 Long Branch Higher
2 Branch Higher
or Same
4 Long Branch Higher
or Same
2 BranchsZero
4 Long BranchsZero
516)
3
5(6)
3
56)
3
5(6)
2 Branch lower
4 Long Branch Lower
3
5i6)
3
5(6)
2 Branch Minus
4 Long Branch Minus
3
5(6)
2 Branch ZtO
4 Long Branch
Z0
Branch Plus
4 Long Branch Plus
"
5i6)
3
5
3
5
2
3
2
4
Branch Alwavs
Long Branch Always
Branch Never
Long Branch Never
7
2 Branch to Subroutine
9
3 Long Branch to Subroutine
3
2 Banch V=0
5(61 4 Long Branch
V=0
3
2 Branch V= 1
5(6) 4 Long Branch
V=l
Page 68
: Interrupt Request.
Page 69
c- Fonction du flag E
Ce flag est positionn par le microprocesseur afin d'indiquer le type de
sauvegarde devant tre ralise (partielle ou complte). Il fait office en quelque
sorte de mmoire interne.
Page 70
Tableau
Page 71
Illustration :
Page 72
Tableau rcapitulatif :
Interruptions :
Instructions d'interruption :
Page 73
Page 74
Principes:
Avant deffectuer un transfert, le microprocesseur teste ltat du priphrique
et ne ralise lopration quaprs stre assur de sa diponibilit. Ltat du
priphrique (prt ou occup, registre de rception plein ou registre de
transmission vide...) est gnralement indiqu par un bit dtat appel flag.
Dans le cas o il y a beaucoup dinterfaces il excute des boucles dattente sur
des vnements extrieurs en passant son temps tester les indicateurs dtat
de chacun (technique du sondage ou polling).
Consquence de cette technique le microprocesseur est immobilis dans cette
tche. Trs pnalisant !
Le remde...
Le mode interruptible :
Dans ce cas, les transferts dE/S seffectuent la demande du priphrique.
(Exemple du clavier : le microprocesseur ne peut pas savoir quel moment
lutilisateur appuiera sur une touche du clavier).
Celui-ci envoie par lintermdiaire du circuit dinterface une demande
dinterruption au microprocesseur. Si celle-ci nest pas masque ou inhibe, le
microprocesseur termine lexcution de linstruction en cours, puis se branche
dans le programme dIT grce au vecteur dinterruption. Cette mthode permet
de dcharger le microprocesseur des oprations de polling.
Avantage :
Les priphriques peuvent fonctionner leur propre vitesse sans pnaliser pour
autant le microprocesseur.
Questions :
Que faire sil y a plusieurs priphriques susceptibles de faire des demandes
dIT?
Dans ce cas, il faut pouvoir identifier le priphrique demandeur.
Trois possibilits :
1- On utilise les diffrentes entres dIT du microprocesseur si cela est
possible.
Master en Contrle et instrumentation
Page 75
Schma :
Cas 2 :
On considre une seule entre de demande dinterruption sur le microprocesseur
avec plusieurs interfaces. On est amen alors adopter le schma suivant :
Page 76
Page 77
Commentaires :
1. Registre d'entre capable de stocker huit demandes d'IT.
2. Registre interne de masque d'IT (initialis par le microprocesseur).
3. Ensemble de ET pour bloquer ou non les demandes d'IT partir des
informations du registre de masques.
Master en Contrle et instrumentation
Page 78
Commentaires :
La ligne A0 est relie directement la mmoire car on agit sur les adresses.
Le multiplexeur est actif seulement en phase de reconnaissance d'IT (BA=0 et
BS=1) et lorsque le vecteur d'IT est dpos sur le bus d'adresse ($FFF8 et
$FFF9 dans notre exemple).
Le reste du Mux se traduit par l'apparition d'un code ( o1, o2 et o3 ).
Ainsi, le microprocesseur accde directement au vecteur d'IT correspondant
la demande. Il n'y a donc plus besoin de la scrutation logicielle des interfaces.
Page 79
Page 80
Dans le cas de laccs alatoire, toute case mmoire peut tre crite ou
lue en un temps donn (dit temps daccs). Les units de ROM et de RAM des
microordinateurs sont toutes les deux du type accs alatoire, bien plus rapide
que les units accs squentiel.
IV.1.1.2 Dfinition dune mmoire : Arrangement binaire de cases , chaque
case est rfrencie par un nombre qui lui est propre de manire non ambigu ; ce
nombre est appel adresse de la case.
IV.1.1.3 Capacit mmoire dun ordinateur: Cest le nombre de cases
mmoires o les informations sont emmagasines.
Exemple: RAM de 1KO (kilo octet) = 210 x 8bits.
RAM de 1 Mga
= 220 x 8bits.
IV.1.1.4 Temps dcriture: Temps qui scoule entre linstant o linformation
stocker et ladresse sont fournies lentre de la mmoire et le moment o
linformation est effictivement crite.
IV.1.1.5 Temps de lecture: Temps qui scoule entre linstant o ladresse est
fournie la mmoire et le moment o la donne apparat en sortie.
IV.1.1.6 Temps daccs la mmoire: Le temps entre le signal dactivation et
le moment o lopration est acheve.
IV.1.1.7 Temps de cycle la mmoire: Le temps qui doit scouler entre deux
activations successives de la mmoire.
Page 81
Page 82
Page 83
Page 84
Exemples:
Page 85
Exemple:
sorties
Fig.IV.6 ROM de 4 mots de 4 bits.
Opration de lecture: La slection dun mot seffectue par la mise zro de la
ligne correspondant ce mot (fermture de linterrupteur I i ) . La prsence
dune diode relie une colonne avec une ligne; elle est polarise en sens direct
(passante), donc on aura la sortie un zro 0 . Labsence de diode donne la
sortie un 1 .
Exemple: Slection du 2eme ligne (I1)
S3
1
Master en Contrle et instrumentation
S2
1
S1
0
S0
0
Page 86
Page 87
Page 88
Page 89
Page 90
Page 91
EXERCICES
EXO1
Slection linaire dadresse:Une mmoire de 1K x 8bits, est faite
partir dun nombre de boitiers organiss en 128 x 8 bit, les adresses de ce plan
mmoire doivent tre conscutives et aller de $0080 $047F.
EXO3: Une mmoire EPROM de 64ko est organise en pages (segments); chaque
page est constituer dun nombre de boitiers de 1ko de capacit mmoire. Sachant
que les segments sont identiques et la dernire page setend de $E000 $FFFF.
Pour la slection des boitiers et des pages, on utilise des dcodeurs valids
lorsquils receveront le signal IO/ M envoy par le microprocesseur 6809.
Master en Contrle et instrumentation
Page 92
Page 93
Page 94
Page 95
Page 96
IV.2.2.11 La ligne de contrle (CB2): cette ligne aussi peut tre programme
dagir comme une entre dinterruption ou une sortie priphrique. En entre,
cette ligne a une impdance dentre suprieure M et compatible TTL. En
sortie, elle est aussi compatible TTL et elle peut vhiculer un courant allant de
1mA 1.5 mA. La fonction de cette ligne est programme par les bits (bits 3, 4
et 5) du registre de contrle.
Page 97
Cx2 en Sortie : Si le bit CRx (5) est mis 1 , Cx2 est dsign comme
une sortie. Les quatre options utilisant Cx2 comme une sortie sont
reprsentes ci-dessous. Pour les quatre options, le bit IRQx2 (bit CRx
(6) reste zro et la ligne de demande dinterruption IRQx reste
un 1 ).
Bit 5, 4, 3 du CRx = 100 (Mode dialogue Handshake mode)
Page 98
Bit 5, 4, 3 du CRx = 101 :Cx2 prendra toujours le niveau bas avec les
bits 5, 4, et 3 gale 110.
Bit 5, 4, 3 du CRx = 111 :Cx2 prendra toujours le niveau haut avec les
bits 5, 4, et 3 gale 111.
Page 99
Page 100
Ct Priphriques (Entres/Sorties)
C
O
T
E
A
L
I
M
E
N
T
A
T
I
O
N
Ct Microprocesseur (MPU)
Figure IV.2.4 Types des lignes de Commande du PIA 6820
Page 101
Page 102
Prsentation
Page 103
Etude matrielle
Page 104
COTE EXTERIEUR :
1- Les lignes "horloge"
Txclk : horloge de transmission Sert de synchronisation (rfrence) pour la
transmission des donnes sur la ligne Txdata.
Le registre de dcalage concernant la transmission est synchronis sur un front
descendant de ce signal.
Rxclk : horloge de rception Sert de synchronisation pour la rception des
donnes sur la ligne Rxdata.
Le registre de dcalage (chargement et dcalage), spcifique la rception, est
pilot par un front montant de ce signal.
Les vitesses de transmission et rception peuvent varier de O 500 Kbits/s.
Il y a possibilit de diviser ces deux horloges par 16 ou 64.
2- Les lignes de contrle dun priphrique type modem.
a- Ligne CTS (Clear To send) Entre permettant de savoir si le modem est prt
recevoir des infos.
Un niveau bas signifie que le modem est prt.
Un niveau haut signifie que le modem est absent (ou non prt).
Influence sur le bit (TDRE) du SR
Remarque : Sil ny a pas de modem (ou autre) mettre toujours cette entre au
niveau bas.
b- Ligne DCD (Data carrier detect) Dtection de porteuse ou perte de la
porteuse.
Entre permettant de savoir si la porteuse au niveau du modem est prsente.
Une absence de celle-ci inhibe la rception, cela se traduit par un niveau haut sur
cette entre. (Dfaut sur la ligne !).
Un niveau bas signifie une prsence de la porteuse au niveau du modem, tat
normal.
Remarque : non utilise, elle doit tre toujours au niveau bas !
Cette entre peut gnrer une interruption IRQ, si CR7 = 1 et si un front
montant est apparu sur DCD.
c- La sortie RTS (Request To Send) Demande dmission.
Cette sortie permet de solliciter le modem (ou autre) pour une transmission par
le microprocesseur (mission demande par le microprocesseur).
Ltat de cette sortie dpend du mot crit dans le CR. La demande dmission se
traduit par RTS au niveau bas.
Exemples d'utilisation :
a- Modem command par un ACIA accus de rception pour la demande de
transmission.
Page 105
Organisation interne
1- TDR (Transmit Data Register) Registre de transmission dans lequel on place
le mot (8 bits) transmettre. Lcriture du mot a lieu sur le front descendant de
E.
Fonctionnement :
Si pas de transmission en cours, alors le contenu du TDR est transfr dans le
registre dcalage automatiquement aprs une instruction dcriture.
Si par contre, un caractre est en cours de transmission, le transfert TDR dans
le registre dcalage est diffr que l'opration de dcalage est en cours (b0 en
1er). Grce au double registre, le caractre suivant peut-tre crit dans TDR
mme si le caractre prcdent est encore en cours de transmission dans le
registre dcalage.
Ds que le transfert lieu - Un bit du registre dtat est positionn "1".
2- RDR (Rception Data Register) Registre de rception dans lequel on reoit
le mot (8 bits) en provenance du priphrique.
Fonctionnement :
Quand un caractre complet est reu, il est automatiquement transfr du
registre de dcalage de rception dans le RDR. A ce moment l, un bit dans le
registre dtat est positionn "1". Le caractre peut alors tre lu par le
microprocesseur.
Page 106
Tant que le bit dans le registre dtat est 1, le transfert automatique est
suspendu !
Du fait du double registre, la lecture peut-tre diffre tant que la rception du
mot suivant nest pas termin.
Cest le bit b0 de la donne qui est reu en 1er
Le registre dtat SR (Status Register). Permet au microprocesseur de
connatre tout instant ltat dune transmission ou dune rception.
Le registre de contrle CR (Control Register) : Permet de configurer le
circuit en adquation avec le priphrique. Reoit les paramtres de
fonctionnement sous forme dun mot de contrle (8 bits) crit sur le front
descendant de E - aussi bien pour la transmission que la rception.
Ces registres ont la particularit d'tre soit en criture soit en lecture
uniquement. Etant donn que l'ACIA est vu par le microprocesseur comme deux
cases-mmoire, le complment du dcodage est ralis par la ligne R/W barre.
Les combinaisons entre RS et R/W permettent de slectionner l'ensemble des
registres selon le schma suivant :
Page 107
Page 108
Dune faon gnrale, lenvoi dun caractre vers la priphrie est toujours
prcd dun test sur TDR pour sassurer que celui-ci est vide. Ce test peut tre
obtenu par :
1- Une scrutation permanente du bit dans le SR (dans ce cas on choisit CR6 et
CR5 = 00).
2- Une interruption gnre par lACIA vers le microprocesseur chaque fois que
le TDR est vide (dans ce cas, on choisit CR6 et CR5 = 01).
Remarque :
LACIA met systmatiquement CR6 et CR5 = 01 la mise sous tension pour viter
lenvoi dinformation intempestive.
CR5 et CR6 = 11 permet denvoyer un break sur la ligne de sortie cest--dire
un niveau bas.
CR7 (Ne concerne que le rcepteur) : Ce bit sert de masque dinterruption
concernant les vnements suivants :
1- Registre de rception plein
2- Front montant sur lentre DCD indiquant la perte de la porteuse.
Ce bit mis 1 traduit ces vnements par une demande dinterruption IRQ bas.
Page 109
Remise 0 par :
Une lecture du RDR.
Un Master Reset.
Une entre DCD haut (plus de porteuse donc plus de donne!).
Remarque : SR0 = 0 --> RDR vide --> on attend !
SR1 : Concerne le registre de Transmission.
SR1 = 1 : lorsque la donne est disponible dans le TDR.
Remise 0 par :
Une criture dans le TDR.
Un Master reset.
Une entre CTS haut (par prt recevoir).
Remarque : SR1 = 0 --> TDR est plein --> on attend !
SR2 : Indique ltat lectrique de la ligne DCD barre.
SR2 = 1 si DCD = 1 (absence de la porteuse)
Ceci peut gnrer une interruption IRQ si autorise (CR7 = 1)
Ce bit est remis 0 par :
Une lecture du SR suivie par une lecture du RDR aprs avoir DCD retour
bas bien sr !
SR3 : Indique ltat de lentre CTS
SR3 = 1 signifie que CTS est haut (modem pas prt recevoir)
Consquence : forage de SR1 0 (TDR plein) ce qui signifie que la transmission
est interrompue !
Ce bit n'est pas affect par un Master reset.
SR4 : Indique une erreur de formatage (FE)
SR4 = 1 : indique un problme de synchronisation qui se caractrise par une
absence du (des) bit(s) de stop.
Mise 0 de SR4 aprs :
une lecture du RDR aprs disparition du problme.
un MASTER RESET.
un niveau bas sur DCD.
SR5 : Indique un dbordement (OVRN)
SR5 = 1 signifie que plusieurs caractres ont t reus avant la lecture du
caractre prcdent.
Si problme rsolu, mise 0 de SR5 aprs :
Lecture du RDR.
Un niveau haut sur DCD ou un Master RESET.
Page 110
Page 111
Page 112
DMY
ISR
STAA $E000
BRA DMY
LDAA $E000
RORA
BCS RECV
BITA #$38
reset ACIA
store in control register
sets IRQ, !RTS=0, 7 data bits even parity, 2 stop
bits, clk:16
store in control register
set interrupt vector.
main program
Read Status Register
rotate right (RDRF -> Carry)
if carry is set -> jump RECV
test error bits (PE, OVRN, FE)
note: right shift was performed
Page 113
RECV
ERR
BNE ERR
LDAA $D002
STAA $E001
RTI
LDAA $E001
STAA $D000
RTI
do something
LDAA #$03
STAA $E000
RTI
reset flags
store in control register
Exemples :
Exemple 1 :
Facteur de rythme= 16
8 bits par caractre
Pas de parit
2 bits stop
mission et rception valide
pas de reset interne
Pas de RAZ des indicateurs derreur
pas de break
Mot de commande
10110001 soit $B1
LDA #$B1
Programmation du 6850
STA Re gistre de commande CR
Exemple 2 :
Sortie dun caractre sur TTY ou CRT ; le caractre transfrer sera suppos
dans laccumulateur.
BCL1
STA
LDA
ANDA
BEQ
LDA
STA
ADR
registre dtat
#$02
BCL1
ADR
registre mission
sauvegarde du caractre
lecture registre dtat
test de TxRDY par masquage
restauration du caractre
Page 114
EXERCICES
Exo1 : On dsire recevoir un caractre partir dun tlimprimeur avec les
hypothses suivantes :
- Vitesse de transmission 110 b ;
- 7 bits dinformation ;
- 2 bits de stop ;
- Parit impaire ;
- Facteur dinversion horloge 1/16 cest dire il faut 16 bits ;
Questions :
1- Faire le programme en assembleur du 6809 pour recevoir le caractre du
tlimprimeur ;
2- Faire le circuit dinterfaage du 6850 avec le microprocesseur 6850;
3- Si la dure dun bit est de 9ms ; quelle est alors la frquence de lhorloge
utilise.
Page 115
0
1
Bit de start
(Dpart)
7 bits de caractres
Page 116
Page 117