Professional Documents
Culture Documents
a
d
r
e
s
s
e
P
I
A
C
S
0
C
S
1
C
S
2
R
S
1
R
S
0
C
R
A
2
C
R
B
2
A
d
r
e
s
s
e
s
R C
R
A
1 1 0 0 1 X X A
d
r
.
47
1
E A D
D
R
A
1 1 0 0 0 0 X A
d
r
.
G O
R
A
1 1 0 0 0 1 X A
d
r
.
I C
R
B
1 1 0 1 1 X X A
d
r
.
3
S B D
D
R
B
1 1 0 1 0 X 0 A
d
r
.
2
T
.
O
R
B
1 1 0 1 0 X 1 A
d
r
.
2
48
1ableau n1 : Slection des registres internes
Les lignes A2-A15 sont reliees a une logique de decodage qui determine l`adresse de
base du PIA (Adr.).
ORA,DDRA : Adr.
CRA : Adr.+1
ORB,DDRB : Adr.+2
CRB : Adr.+3
Registres de contrle CRA et CRB
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
I
R
Q
A
1
I
R
Q
A
2
C
o
n
t
r
l
e
C
A
2
A
c
c
s
D
D
R
A
C
o
n
t
r
l
e
C
A
1
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
I
R
Q
B
1
I
R
Q
B
2
C
o
n
t
r
l
e
C
B
2
A
c
c
s
D
D
R
B
C
o
n
t
r
l
e
C
B
1
49
a) Contrle des lignes CA1 et CB1
Les bits CRA0 et CRB0 sont utilises pour valider les lignes de demande d`interruption
CA1 et CB1. Les bits CRA1 et CRB1 determinent la transition active des entrees CA1
et CB1 (tableau n2).
C
R
A
1
(
C
R
B
1
)
C
R
A
0
(
C
R
B
0
)
C
A
1
(
C
B
1
)
Drap
eau
dint
erru
ption
CRA
7
CRB
7)
Demande
dinterruption
IRQA (IRQB)
0 0
A
c
t
i
f
Mise
a 1
au
de
CA1
(CB1
)
Non validee. IRQA
(IRQB) toufours a1
0 1
A
c
t
i
f
Mise
a 1
au
de
CA1
(CB1
)
Mise a 0 si le
drapeau
dinterruption
CRA7(CRB7) est
mis a 1
1 0
A
c
t
i
f
Mise
a 1
au
de
CA1
(CB1
)
Non validee. IRQA
(IRQB) toufours a1
1 1
Mise Mise a 0 si le
50
A
c
t
i
f
a 1
au
de
CA1
(CB1
)
drapeau
dinterruption
CRA7(CRB7) est
mis a 1
1ableau n2 : contrle des lignes CA1 et CB1
Remarques :
- le drapeau d`interruption CRA7 (CRB7) est mis a 0 au cours d`un cycle de lecture CPU du registre
de sortie ORA (ORB).
- Si un Iront actiI est appliquee sur CA1 (CB1) alors que la demande d`interruption est non validee
(CRA00 ou CRB00), la ligne CPU IRQA (IRQB) sera activee au moment ou, par logiciel, on
mettra le bit CRA0 (CRB0) a l`etat 1.
b) CRX2
Le bit CRX2 (XA ou B) est associe aux lignes d`adresse RS0 et RS1 pour acceder aux
registres DDRX (CRX20) et ORX (CRX21) (voir tableau n1).
c) Contrle des lignes CA2 et CB2
Le bit CRX5 (XA ou B) deIinit le sens de Ionctionnement de la ligne CX2.
- CRX50 mode entree (interruption)
- CRX51 mode sortie (contrle)
c.1.) Mode entre (CRX50)
CA2 et CB2 sont alors des lignes de demande d`interruption. Les bits CRA3 et CRB3
sont utilises pour valider les demandes d`interruption IRQA et IRQB.
Les bits CRA4 et CRB1 determinent la transition active des entrees de demande
d`interruption CA2 et CB2 (tableau n3).
C
R
A
4
(
C
R
A
3
(
C
A
2
(
Drap
eau
dint
erru
ption
Demande
dinterruption
IRQA (IRQB)
51
C
R
B
4
)
C
R
B
3
)
C
B
2
)
CRA
6
(CR
B6)
0 0
A
c
t
i
f
Mise
a 1
au
de
CA2
(CB2
)
Non validee. IRQA
(IRQB) toufours a1
0 1
A
c
t
i
f
Mise
a 1
au
de
CA2
(CB2
)
Mise a 0 si le
drapeau
dinterruption
CRA6 (CRB6) est
mis a 1
1 0
A
c
t
i
f
Mise
a 1
au
de
CA2
(CB2
)
Non validee. IRQA
(IRQB) toufours a1
1 1
A
c
t
i
f
Mise
a 1
au
de
CA2
(CB2
)
Mise a 0 si le
drapeau
dinterruption
CRA6 (CRB6) est
mis a 1
1ableau n3 : contrle des lignes CA2 et CB2
Remarques :
- le drapeau d`interruption CRA6 (CRB6) est mis a 0 au cours d`un cycle de lecture CPU du registre
de sortie ORA (ORB).
52
- Si un Iront actiI est appliquee sur CA2 (CB2) alors que la demande d`interruption est non validee
(CRA30 ou CRB30), la ligne CPU IRQA (IRQB) sera activee au moment ou, par logiciel, on
mettra le bit CRA3 (CRB3) a l`etat 1.
c.1.) Mode sortie (CRX51)
Deux sous-modes de Ionctionnement sont possibles :
- CRX41 mode programme
- CRX40 mode dialogue
Mode programme (CRX41)
Les lignes CA2 ou CB2 prennent letat du bit 3 du registre de controle correspondant
(CRA3 ou CRB3). Les lignes CX2 sont donc des sorties dont letat est modifie par
logiciel au mme titre que les ports A ou B programmes en sortie.
Mode dialogue (CRX40)
Dans ce mode, il est necessaire de programmer le port A en entree et le port B en
sortie. Le port A permet d`acquerir l`inIormation Iournie par le peripherique et le port B
permet au CPU de repondre.
AIin de rythmer les echanges :
- CA2 indique au peripherique que la donnee appliquee sur le port A a ete lue par le
CPU.
- CB2 indique au peripherique que le CPU vient d`ecrire une nouvelle donnee dans le
registre se sortie du port B.
- Le bit CRX3 deIinit le type de reponse des sorties CA2 et CB2.
CRX30 CX2 reste a l`etat actiI (0) jusqu`a ce que le peripherique ait repondu en
activant une entree de demande d`interruption (CA1 ou CB1).
- CRX31 reponse de type impulsion.
CX2 ne reste a l`etat actiI (0) que pendant une periode CPU quelque soit
la reponse du peripherique.
Contrle de CA2 en sortie (CRA51) en mode dialogue (CRA40)
C
R
A
5
C
R
A
4
C
R
A
3
CA2
Mis a 0
Mis a 1
53
1 0 0 Au Iront de
la 1ere
impulsion E qui
suit un cycle
CPU d`ecriture
dans ORA
Quand le drapeau
d`interruption
CRA7 est mis a 1
par action sur
l`entree CA1
1 0 1 Au Iront de
la 1ere
impulsion E qui
suit un cycle
CPU d`ecriture
dans ORA
Au premier de
E lorsque le PIA
n`est pas
selectionne par le
CPU
Contrle de CB2 en sortie (CRB51) en mode dialogue (CRB40)
C
R
B
5
C
R
B
4
C
R
B
3
CB2
Mis a 0
Mis a 1
1 0 0 Au Iront de
la 1ere
impulsion E qui
suit un cycle
CPU d`ecriture
dans ORB
Quand le drapeau
d`interruption
CRB7 est mis a 1
par action sur
l`entree CB1
1 0 1 Au Iront de
la 1ere
impulsion E qui
suit un cycle
CPU d`ecriture
dans ORB
Au 2eme de E
lorsque le PIA
n`est pas
selectionne par le
CPU
54
Programmation d'un PIA 821
- Charger le registre de commande par la valeur approprie. Ce chargement
s'effectue en principe une fois seulement au dbut du programme.
- Charger le registre de direction pour spcifier dans quelle direction on dsire utiliser
les lignes d'entre-sortie..
- A ce stade, la configuration est dfinie et il est donc prt tre utilis. On teste le
contenu du registre de commande pour dterminer l'tat du dispositif.
- Le CPU lit les donnes en provenance du dispositif.
On peut prsent rpter les phases 3 et 4 indfiniment.
-
55
Interface srie programmable : ACIA 85
L`ACIA est l`interIace serie asynchrone entre le 6809 et ses peripheriques (clavier serie,
imprimante serie, modem, terminal de visualisation, teletype, ...).
L`ACIA communique au p par l`intermediaire :
- du bus de donnees (8 bits),
- du bus d`adresse (4 lignes),
- du bus de contrle.
Les echanges avec la peripherie se Iont par :
- une ligne de transmission de donnees : TxData,
- une ligne de reception de donnees : RxData,
- 3 lignes de contrle paripherique/modem.
Figure n1
Mmoire
ACIA
6850
680X
Bus de
donnes
Bus
dadresse
Bus de
contrle
Transmission
Reception
Priphriques :
- imprimante
- Clavier
- Modem
- Teletvpe
- ..
Contrle
56
Structure interne de lACIA 6850
La structure interne de l`ACIA est donnee en Iigure n2. Le PIA comprend
essentiellement quatre registres dont deux a ecriture seule et deux a lecture seule :
Registre de contrle (CR : Controm Register)
Ce registre, accessible seulement en ecriture, contient les parametres de Ionctionnement
en transmission et en reception. On donnera par la suite une description complete de ces
possibilites.
Registre de transmission de donnes (1DR : 1ransmit Data Register)
Ce registre, accessible seulement en ecriture, contient le mot a emettre.
Registre de rception de donnes (RDR : Receive Data Register)
Ce registre, accessible seulement en lecture, reoit le mot en provenance de la
peripherie.
Registre d'tat (SR : Statut Register)
Ce registre, a lecture seule, contient le mot d`etat qui renseigne le p sur les operations
en cours.
TDR
CR
SR
RDR
Transmission
Reception
Controle
Horloge de transmission
Horloge de reception
IRQ
CS0
CS1
CS2
RS
D0-D7
R/W
E
TxD
RTS
CTS
DCD
RxD
57
Structure externe du LACIA 6850
Liaisons avec le microprocesseur
Bus de donnes D0-D7
Les lignes D0-D7 sont directement liees au bus de donnees du p . Elles permettent le
transIert de donnees entre le p et l`ACIA. Ces lignes sont dans l`etat haute
impedance` si elles ne sont pas utilisees.
Slection du botier CS0,CS1,CS2 (Chip Select)
Ces trois entrees permettent de selectionner le botier ACIA. Celui-ci est selectionne
si :
CS0,CS1,CS2 sont generalement des fonctions booleennes des entrees A
0
-A
15
.
Slection des registres RS (Register Select)
Cette ligne en liaison avec le signal R/W permet de selectionner l`un des quatre registres
internes de l`ACIA. Un niveau haut pour selectionner les registres de transmission ou de
reception et un niveau bas pour selectionner les registres de contrle ou d`etat.
Generalement RS0 est liee au Iil d`adresse A
0
. Le signal R/W est utilise avec le signal
RS pour selectionner, dans chaque paire, le registre a lecture seule ou le registre a
ecriture seule.
Signal de validation E
Ce signal permet la synchronisation des echanges. Cette entree correspond a la sortie E
du 6809.
0 1 1
2
1 0
. . . . = CS CS CS
58
Lecture-Ecriture R/W
Ce signal est produit par le p pour contrler le sens de transIert de donnees sur le bus
de donnees.
Demande d`interruption IRQ
Ccette sortie, si elle est reliee a IRQ ; FIRQ ou NMI du p, permet d`interrompre
l`execution d`un programme pour traiter un sous-programme speciIique au peripherique
ayant active IRQ. Le bit IRQ du registre d`etat, quand il est a un, indique que la sortie
IRQ est active.
Liaisons avec la priphrie
Lignes de transIert :
- TxD (ligne de transmission de donnees) : cette sortie assure la transmission des
donnees en serie.
- RxD (ligne de reception de donnees) : cette entree receptionne les donnees serie en
provenance de la peripherie.
Lignes de contrle d`un peripherique ou d`un modem
L`ACIA comprend plusieurs Ionctions qui permettent le contrle d`un peripherique ou
d`un modem. Ces Ionctions sont inhibition de l`emission (CTS : Clear To Send),
demande d`emission (RTS : Request To Send), perte de la porteuse de donnees (DCD :
Data Carrier Detect).
Demande d'mission R1S (Request 1o Send)
Cette sortie permet au p d`interroger le Modem (ou le peripherique) pour savoir s`il est
prt a recevoir les donnees transmises par l`ACIA. Le Modem repond generalement par
l`activation de l`entree CTS.
Inhibition de l'metteur C1S (Clear 1o Send)
Cette entree permet le contrle automatique de la Iin de transmission par un modem.
Non utilisee, elle doit tre au niveau bas.
59
Perte de la porteuse de donnes DCD (Data Carrier Detect)
Cette entree permet le contrle du recepteur de donnees par un modem. Elle est utilisee
par le Modem pour indiquer au p que les donnees reues sont Iausses a cause d`une
perte de la porteuse. Non utilisee, elle doit tre au niveau bas.
Lignes horloges :
- Txclk (horloge de transmission)
Cette entree sert pour rythmer la cadence de transmission. Les donnees sont transmises
sur le Iront descendant de cette horloge.
- Rxclk (horloge de reception)
Cette entree sert pour rythmer la cadence de reception. Les donnees sont prises en
compte sur le Iront montant de l`horloge.
60
CS0
CS1
/CS2
RS0
RS1
RS2
R/W
E
RESET
IRQB
D0-D7
PA0-PA7
PB0-PB7
CA1
CA2
CB1
CB2
IRQA
Ampli.
Bus de
Donnes
Registre
dentre
du bus
Slect.
de
Botier
Slect.
De
registres
Registre
de
Contrle A
(CRA)
Registre
de
Sortie A
(ORA)
Registre
de
Sortie B
(ORB)
Registre
de
Contrle B
(CRB)
Contrle
Dinterrup.
Port A
Registre de
Sens de
transfert
(DDRA)
Interface
Avec la
Priphrie
Port A
Interface
Avec la
Priphrie
Port B
Registre
de
Sens de
transfert
(DDRB)
Contrle
Dinterrup
.Port B
61
Fonctionnement de l'ACIA
Le diagramme Ionctionnel de l`ACIA (Iigure n3) nous montre le rle des diIIerents
registres accessibles a l`utilisateur.
a) 1ransmission
La sequence de transmission commence par la lecture du registre d`etat de l`ACIA soit
apres une interruption soit pendant une boucle de test. Un caractere peut tre ecrit dans
le registre de transmission si la lecture du registre d`etat indique que le registre de
transmission est vide (bit TDRE a 1). Le caractere est transIere dans un registre a
decalage puis il est transmis en serie, par la ligne TxD, precede par un bit START et
suivi de un ou deux bits STOP. Un bit de parite (paire ou impaire)peut tre
optionnellement ajoute au caractere et sera transmis entre le dernier bit de donnee et le
premier bit STOP. Apres l`ecriture du premier caractere dans le registre de transmission,
le registre d`etat peut tre lu a nouveau pour tester le bit TDRE, indiquant si le registre
de transmission est vide ou non, et l`etat courant du peripherique. Si le registre est vide,
un autre caractere peut tre ecrit mme si le premier caractere est en cours de
transmission (grce au double registre). Le second caractere sera automatiquement
transIere dans le registre a decalage, pour tre transmis, quand la transmission du
premier caractere sera termine.
b) Rception
Les donnees de la peripherie sont reues en serie par l`entree reception de
donnees (RxD). La sequence de reception commence par la lecture du registre d`etat de
l`ACIA pour tester si un caractere a ete reu. Si le registre de reception est plein (bit
RDRF a un), il peut tre lu par le p. Quand l`ACIA Ionctionne sur des mots de 8 bits
comprenant un bit de parite, le bit de parite n`est pas transIere dans le p ; ainsi seule la
donnee est lue par le p. Ceci Iacilite la programmation du p. La sequence continue
par une nouvelle lecture du registre d`etat pour determiner quand un nouveau caractere
sera disponible dans le registre de reception. Le recepteur a aussi un double registre de
sorte qu`un caractere peut tre lu dans le registre de donnees tandis qu`un autre est
transmis dans le registre a decalage. Cette sequence continue jusqu`a ce que tous les
caracteres soient reus.
62
Slection des registres internes
L`ACIA occupe 2 octets en memoire pour les registres internes. l`acces aux quatre
registres tient compte de l`etat du signal R/W. Le tableau suivant resume l`adressage des
registres internes de l`ACIA
B
u
s
C
P
U
A
1
5
L
o
g
i
q
u
e
.
.
.
D
e
A
1
D
e
c
o
d
a
g
e
A
0
R
/
W
A
C
I
A
C
S
0
C
S
1
C
S
2
R
S
0
R
/
W
A
d
r
e
s
s
e
s
C
R
1 1 0 0 0 A
d
r
.
R
e
g
i
S
R
1 1 0 0 1 A
d
r
.
63
s
t
r
e
s
T
D
R
1 1 0 1 0 A
d
r
.
1
R
D
R
1 1 0 1 1 A
d
r
.
1
1ableau n1 : Slection des registres internes
Les lignes A
2
-A
15
sont reliees a une logique de decodage qui determine l`adresse de
base de l`ACIA (Adr.).
CR/SR : Adr.
TDR/RDR : Adr.+1
Programmation de l'ACIA
La programmation se Iait par l`ecriture d`un mot de commande dans le registre de
commande apres un Master Reset` prealable qui se Iait en ecrivant 03 dans le registre
de commande.
64
a) Master Reset
La combinaison CR0.CR11.1 etant utilisee pour l`initialisation programmee du
registre de contrle (MASTER RESET). L`ACIA ne possede pas une broche RESET
permettant une initialisation hardware.
LDA #$03 ; Master Reset
STA CR
b) Ecriture du mot de commande dans le registre de commande
L`ACIA est utilise en emission et/ou en reception. Le mot de commande permet de
deIinir le nombre de bits utiles, le nombre de bits STOP, la presence ou l`absence d`un
contrle de parite ou imparite, la validation ou non d`un mode interruptible (IRQ), la
valeur du Iacteur du rythme. Le mot de commande est determine a partir du tableau de
la Iigure n.
Registre de contrle CR
C
R
7
C
R
6
C
R
5
C
R
4
C
R
3
C
R
2
C
R
1
C
R
0
Le registre de contrle de l'ACIA est un registre de 8 bits criture seule,
qui est slectionn quand RS et R/W. Ce registre contrle le
fonctionnement du rcepteur et du transmetteur, les autorisations
d'interruption et la sortie R1S de contrle du priphrique ou du Modem.
Bits de slection du rapport de division (CR et CR1)
Ces deux bits permettent d`indiquer le rapport de division, pour l`emetteur et le
recepteur, entre la Irequence d`horloge et la Irequence de transIert serie des donnees. De
plus, ces deux bits peuvent tre utilises pour l`initialisation programmee de l`ACIA.
Les fonctions de ces bits sont les suivantes :
C
R
1
C
R
0
Co
ntr
ole
en
65
tra
ns
mis
sio
n
et
en
rec
ept
ion
0 0 1/1
0 1 1/1
6
1 0 1/6
4
1 1 M
ast
er
Re
set
Bits de slection du format des mots (CR2,CR3 et CR4)
Ces trois bits determinent le Iormat du mot transmis (ou reu) : longueur du mot, parite,
nombre de bits STOP. Les Iormats possibles sont les suivants :
C
R
4
C
R
3
C
R
2
L
o
n
g
u
e
u
r
d
u
P
a
r
i
t
e
N
o
m
b
r
e
d
e
b
i
66
m
o
t
t
s
s
t
o
p
0 0 0 7
b
i
t
s
P
a
i
r
e
2
0 0 1 7
b
i
t
s
I
m
p
a
i
r
e
2
0 1 0 7
b
i
t
s
P
a
i
r
e
1
0 1 1 7
b
i
t
s
I
m
p
a
i
r
e
1
1 0 0 8
b
i
t
s
S
a
n
s
2
1 0 1 8 S 1
67
b
i
t
s
a
n
s
1 1 0 8
b
i
t
s
P
a
i
r
e
1
1 1 1 8
b
i
t
s
I
m
p
a
i
r
e
1
Bits de contrle du transmetteur (CR5 et CR)
Ces deux bits permettent le contrle des interruptions en transmission pouvant tre
generees par la condition registre de transmission vide, par la sortie RTS et par la
transmission d`un BREAK (niveau bas) sur la ligne de transmission serie. Les Ionctions
possibles sont les suivantes :
Controle en transmission C
R
6
C
R
5
RTS0, Interruptions du
transmetteur inhibees
0 0
RTS0, Interruptions du
transmetteur validees
0 1
RTS1, Interruptions du
transmetteur inhibees
1 0
RTS0, Interruptions du
transmetteur inhibees et
Emission d`un break sur la
ligne (niveau bas)
1 1
68
L`ACIA met automatiquement CR6.CR51.0 a la mise sous tension pour eviter l`envoi
d`inIormations aleatoires.
Bit d'autorisation des interruptions du rcepteur (CR7)
Les interruptions generees par le recepteur sont autorisees si Cr71 et sont masquees si
CR70 . Les interruptions du recepteur sont generees par les conditions suivantes :
registre de reception plain, une transition montante sur l`entree DCD.
C
o
n
t
r
o
l
e
e
n
r
e
c
e
p
t
i
o
n
C
R
7
I
n
t
e
r
r
u
0
69
p
t
i
o
n
s
d
u
r
e
c
e
p
t
e
u
r
m
a
s
q
u
e
e
s
I
n
t
e
r
r
u
p
t
i
o
n
1
70
s
d
u
r
e
c
e
p
t
e
u
r
v
a
l
i
d
e
e
s
Registre detat SR
Le registre d`etat (8 bits) permet de contrler en permanence le transIert des inIormations. Il indique les
etats du registre de transmission, du registre de reception et des erreurs logiques, ainsi que l`etat des
entrees CTS et DCD.
SR0 : RDRF (Receive Data Ragister Full : Registre de Reception des donnees plein)
Un test sur ce bit permet de connatre l`etat du registre de reception. Il indique (quand il est a 1) qu`une
donnee reue a ete transIeree dans le registre de reception RDRF. Quand il est a 0, ce bit indique que le
registre de reception ne contient pas de nouvelle donnee. La lecture du registre de reception par le p
reinitialise RDRF a 0.
SR1 : TDRE (Transmit Data Ragister Empty : Registre de Transmission des donnees vide)
71
Ce bit indique, quand il est a 1, que le contenu du registre de transmission a ete transIere dans le registre a
decalage et qu`une nouvelle donnee peut y tre ecrite. Le p doit tester l`etat de cet indicateur avant
d`ecrire une nouvelle inIormation dans le registre de transmission TDR. L`ecriture dans ce dernier Iait
passer le bit SR1 de 1 a 0.
L`activation du bit SR1 peut entraner une demande d`interruption si CR6.CR50.1.
SR2 : DCD (Data Carrier Detect : Detection de la perte de la porteuse)
Ce bit passe a un quand le signal d`entree DCD, provenant d`un Modem, passe a l`etat haut pour indiquer
l`absence de la porteuse de donnees. L`activation du bit SR2 peut entraner une demande d`interruption si
CR71.
SR3 : CTS (Clear To Send : Inhibition de l`emetteur)
Le bit CTS indique l`etat de l`entree CTS reliee a un modem. Quand il est a 0, il indique que le modem
est prt a emettre. Quand il est a un, le bit TDRE est inhibe (la transmission n`est pas possible).
SR4 : FE (Framing Error : Erreur de trame)
Ce bit indique une erreur de Iormat, sur le caractere reu, detectee par l`absence du premier bit d`arrt.
Cette erreur correspond a une perte de synchronisation caractere, une reception deIectueuse ou un break
sur la ligne. Ce drapeau reste positionne tant que le deIaut subsiste.
SR5 : OVRN (Receveur Overrun : surcharge su recepteur)
Ce bit positionne a 1indique que certains caracteres reus n`ont pas tre lus par le p. Ce genre d`erreur se
produit si la Irequence de reception est plus elevee que la vitesse des donnees appliquees sur l`entree
RxD.
SR6 : PE (Parity Error : Erreur de parite)
Ce bit indique que le nombre de 1` dans le caractere reu ne correspond avec la parite impaire ou paire
preselectionnee.
SR7 : IRQ (Interrupt Request : Demande d`interruption)
Cet indicateur indique l`etat de la sortie IRQ. Tant que la sortie IRQ est a l`etat bas, le bit IRQ reste a 1`
pour indiquer au la source de l`interruption. Le bit IRQ est remis a 0` par une lecture du registre de
reception ou par une lecture du registre de transmission.
72
73
Exercices - PIA 821
Exercice n1 :
Ecrire un programme permettant d'afficher successivement $F et $ sur le port A
du PIA (allumer puis teindre les quatre leds).
Chaque valeur est affiche pendant environ ,5 sec.
Initialiser le PIA (seul le port A est utilis, CA1, CA2 ne le sont pas).
PA PA3 : sorties connectes aux 4 LEDS.
Considrer le dlai (,5 sec) et l'initialisation du PIA comme des sous programmes
placs en :
$E1 pour l'initialisation (IAI1)
$E2 pour le dlai (DELAI)
Le programme principal est en $E.
Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
Exercice n2 :
Ce programme doit permettre de lire une donne sur le port A (4 MSB) et de la
recopier aprs un dlai de ,5 sec sur le port A (4 LSB). Il boucle sur lui-mme.
- Considrer le dlai (,5 sec) et l'initialisation du PIA comme des sous programmes
placs en :
$E1 pour l'initialisation (IAI1)
$E2 pour le dlai (DELAI)
- Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
- Ecrire Le programme principal est en $E2.
Connecter les quatre interrupteurs PA
4
- P A
7
, les quatre LEDS PA
- P A
3
.
Exercice n3 :
74
Ce programme permet d'afficher un bit 1 (allum) sur le port A et de le dcaler
droite de faon continue, avec un dlai d'environ ,t sec entre deux positions
successives..
- Le dlai (,5 sec) et l'initialisation du PIA sont des sous programmes en :
$E1 pour l'initialisation (IAI1)
$E2 pour le dlai (DELAI)
- Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
- Ecrire Le programme principal est en $E4.
Connecter les lignes du port A (sorties) l'afficheur 7 segments et une LED.
Exercice n4 :
Ecrire un programme permettant de dcaler droite un bit 1 sur le port A si le
premier interrupteur (PA7) est gal 1, et de le dcaler gauche si le premier
interrupteur (PA7) est gal .
Il y a un dlai de ,5 sec entre 2 positions successives du bit.
Les sous programmes d'initialisation et de dlai sont en :
$E1 pour l'initialisation (IAI1)
$E2 pour le dlai (DELAI)
Le programme principal est en $E5.
Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
PA
7
connecte un interrupteur. PA
- PA
, PA
1
des afficheurs.
Exercice n7 :
1) Les 4 leds du port A clignotent en permanence (utiliser PIA 1 comme sous-
programme).
2) Quand l'utilisateur appuie sur CA1 , l'tat des interrupteurs est maintenu environ
2 s sur les leds du port A (utiliser PIA 2 comme sous-programme).
3) Quand l'utilisateur appuie sur CA2 puis sur CA1 , l'tat des interrupteurs reste
affich en permanence. Seul RESE1 arrtera l'affichage.
76
Utiliser IAI1 et DELAI
Origine : $EE
PA0 PA3 connectees aux LEDS
PA4 PA7 connectees aux interrupteurs
CA1 , CA2 connectees aux generateurs de fronts.
77
1P1 : Programme de maintenance d'un PIA
Exercice :
Une des methodes couramment utilisee pour tester une interIace parallele est le
rebouclage, par exemple :
Connecter les 8 lignes PA0 PA7 aux 8 lignes PB0-PB7.
1) Envoyer toutes les valeurs de 0 a F puis veriIier qu`elles sont egales en reception
une a une.
s`il n`y a pas d`erreur, le programme reboucle.
s`il y a erreur, le programme s`arrte.
Le programme principal MPIA est en $E19.
2) Reboucler CB2 CA1
CA2 CB1
VeriIier par programme le rebouclage.
Le programme principal MPIAC est en $E1C7.
Le dlai (,5 sec) et l'initialisation du PIA sont des sous programmes en :
$E1 pour l'initialisation (IAI1)
$E2 pour le dlai (DELAI)
P
A
0
P
A
1
P
A
2
P
I
A
P
CA1
CA2
CB1
CB2
78
A
7
P
B
0
P
B
1
P
B
2
P
B
7
1P2 : Jisualisation
Le PIA est utilise pour eIIectuer une visualisation sur aIIicheur 7 segments.
Exercice n1: Commande du PIA utilisateur compteur hexadecimal
Ce programme permet l`aIIichage sur un aIIicheur 7 segments de valeurs hexadecimales
successives, de $0 a $F, et de repartir ensuite de $0.
La valeur codee en 7 segments est envoyee par le port B du PIA. Tous les codes 7
segments sont places dans une table a remplir a partir de l`adresse $E2A0.
Chaque valeur est aIIichee pendant 0,5 sec.
- Position des segments :
a
b
c
d
e
f
g
- Correspondent :
Les CA1 sont en entree
Les CA2 sont en sortie
79
g f e d c b a
b
7
B
6
b
5
b
4
b
3
b
2
b
1
b
0
M
S
B
L
S
B
- Un bit a 1 allume le segment correspondant.
- Sous programme d`initialisation : en $E10D (port B seulement).
- Sous programme de delai : en $E200
- Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
DDRB/CRB : $E482
CRB : $E483
Ecrire le programme principal en $E280.
Exercice n2: Commande du PIA utilisateur transcodeur
Ce programme permet de transcoder une valeur binaire en sa valeur hexadecimale (de 0
a F) aIIichee sur 7 segments.
La valeur binaire est lue sur le port A (quatre interrupteurs) (PA0-PA3).
Le code 7 segments est obtenu a partir d`une table cree a partir de l`adresse $E2A0, il
est aIIiche a partir du port B.
- Sous programme d`initialisation : en $E100 (completer avec Init A)
- Sous programme de delai : en $E200
Programme principal en $E2C0
- Position des segments :
a
b
c
d
e
f
g
- Correspondent :
80
g f e d c b a
b
7
B
6
b
5
b
4
b
3
b
2
b
1
b
0
M
S
B
L
S
B
- Un bit a 1 allume le segment correspondant.
- Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
DDRB/CRB : $E482
CRB : $E483
81
1P3 : PIA en mode interruptif
Exercice n1: PIA en mode interruptiI
Ce programme permet d`utiliser le vecteur IRQ du Kit.
Il est en trois parties :
1) Un programme principal : compteur hexadecimal (PIAT8) et d`attente de la
demande d`interruption du PIA (utiliser CA1).
Adresse de depart $E0E0
Sortie sur PB0-PB6.
2) Un programme d`interruption : lecture des interrupteurs et copie de son contenu sur
les LEDS avec delai PIAT2.
Interrupteurs : PA4-PA7
LEDS : PA0-PA3
3) Un sous-programme d`aIIichage et un sous-programme de delai.
- Commande du PIA : pour CA1 actiI
- Adresses du PIA :
DDRA/CRA : $E48
CRA : $E481
DDRB/CRB : $E482
CRB : $E483
82
TP4 : Transmission parallle asynchrone
83
TP 5 : Gnration de tensions continues (N/A)
TP 6 : Voltmtre - affichage sur LED (A/N)
84
1P 1 : 1ransmission de donnes
1) Introduction
La transmission d`un caractere puis d`une serie de caracteres va permettre de visualiser
les diIIerentes possibilites de transmission :
- caracteres
- parites
- bit(s) d`arrt(s)
Pour ceci vous ecrivez un programme qui comportera trois sous programmes :
- ACIAINIT : sous programme d`initialisation d`un ACIA
- DELAI : sous-programme qui permettra d`introduire un delai entre la transmission des
caracteres.
- OUTCH : sous-programme qui permettra de transmettre un caractere contenu dans
l`ACIA.
2) Donnes techniques
Le MC09B comporte un ACIA utilisateur avec les disponibilites suivantes :
- Ligne de transmission des donnes : 1x
- Ligne de rception des donnes : Rx
- Ligne de contrle : R1S - C1S DCD
(quand les entres ne sont pas connectes, elles sont l'tat inactif).
- Horloge de transmission (commune en mission et rception).
La frquence de transmission peut tre rgle avec le rotacteur du baud rate
generator et les cavaliers 11.
Les registres internes de l'ACIA ont les adresses suivantes :
- Rception : $E71 en lecture (R/W1)
- 1ransmission : $E71 en lecture (R/W)
- Contrle : $E7 en lecture (R/W)
- Etat : $E7 en lecture (R/W1)
85
3. Sous-programmes
3.1. Introduction
Un sous-programme peut tre utilise plusieurs Iois dans un programme, ou tre utilise
dans des programmes, ou tre utilise dans des programmes diIIerents a condition de
donner les parametres suivants :
- Conditions d`entre : les donnees qui doivent tre indiquees pour que le sous-
programme Ionctionne avant son appel.
- Rle
- Conditions de sortie : les modiIications que le sous-programme a introsuites dans le
processus apres le retour de sous-programme.
- Emplacement en memoire.
3.2. Dlai
- Conditions d`entre : charger dans le registre d`index une donnee comprise entre
$0001 et $FFFF.
- Rle : la duree du delai sera lineairement proportionnelle a la valeur du contenu de
X.
Variation de 8 us a 0,5 seconde environ pour
2
1 MHz.
- Conditions de sortie : Le registre d`index est a zero.
- Emplacement en memoire :
Adresse de depart : $E203
Adresse de Iin : $E206
Dans quel rle le registre d`index sera-t-il utilise ?
Ecrire et tester DELAI
Remarque .
Pour tester DELAI comme programme, utiliser SWI comme point darrt.
86
3.3. IAI1ACIA
- Conditions d`entre : neant
- Rle :
ce sous-programme eIIectuera :
- la remise a zero de l`ACIA,
- l`envoi du mot de contrle
- Conditions de sortie :
(ACCA) mot de contrle
Emplacement en memoire :
Adresse de depart : $E120
Adresse de Iin : $E12A
(A noter apres l`ecriture de INITACIA)
Ecrire INITACIA
3.4. OU1CH
- Conditions d`entre :
(ACCA) donnee a transmettre
- Rle : transmettre un caractere
- Conditions de sortie :
(ACCA) donnee transmise
(ACCB) donnee detruite
Adresse de depart : $E220
Ecrire OUTCH
4. Programme
AIin d`avoir les meilleures conditions de synchronisation de l`oscilloscope, quel rythme
en BAUD choisir ?
Quelle division d`horloge ?
87
4.1. Mise au point
Ecrire et tester le programme : (Rx) 01FF
7 bits parite paire 2 bits d`arrt
Donnee 0101011
4.2. Changement de caractres
Dessiner le caractere visualise sur l`ecran et noter D (bit de depart), A (pour le premier
bit d`arrt) pour les exemples suivants (caractere ASCII).
4.3. Changement de parit
Completer en dessinant les octets transmis.
Mot de contrle : 00011000 et 00011000
4.4. Bit d'arrt
Prendre le delai minimum
Transmettre $00110011
Dessiner la visualisation de deux caracteres qui se suivent :
- avec un bit d`arrt
- avec 2 bits d`arrt
88
89
Exercices
Exercice :
1) Examinez le programme source suivant et pour chaque instruction etudiez les
modiIications des registres (A, PC, CC).
ORG $0100
LDA #20
ADDA #$A0
INCA
STA $20
END
2) En deduire le programme objet.
Exercice :
1) Etudiez les modes d`adressage utilises et donnez les contenus des registres ou de la
memoire apres chaque instruction.
ORG $0100
LDA #$0C
STA $1000
LDA #$10
TFR A,DP
LDA #$A7
STA $01
LDB 128
STB [ [[ [$1000] ]] ]
LDY $1000
LDA #$41
CLRB
STA B,Y
INCB
INCA
STA ,Y+
END
90
2) En deduire le programme objet.
Exercice :
Soit une memoire de programmes.
Trouver le rle de ce programme.
Exercice : Addition sur 8 bits (SA+M)
1) Ecrire un programme source en langage assembleur du 6809 qui sert a additionner
deux nombres binaires A` et M` situes respectivement aux adresses memoires
(8040)
H
et (8041)
H
. Le resultat de l`addition S` sera range en memoire a l`adresse
(8050)
H
. On suppose qu`il peut y avoir une retenue Iinale C`. Dans ce cas placer la
retenue a l`adresse (804F)
H
.
a) en mode d`adressage etendu
b) en mode d`adressage direct
c) en mode d`adressage indexe (X : registre d`index)
2) Donner pour chaque mode d`adressage le code objet (listage en code machine).
Le Programme residera a l`adresse $8000 en memoire.
91
$
8
4
N
$
8
4
1
M
$
8
4
F
C
o
c
t
e
t
1
$
8
5
S
o
c
t
e
t
0
Exercice : transfert de donnes
92
Mettre au point un programme source eIIectuant le transIert d`une table de $E000 -
$E00F a $E020 $E02F.
a) en mode d`adressage etendu
b) en mode d`adressage direct
c) en mode d`adressage indexe (X : registre d`index)
2) Donner pour chaque mode d`adressage le code objet (listage en code machine).
Le Programme residera a l`adresse $8000 en memoire.
Exercice : transfert de donnes
Mettre au point un programme source eIIectuant le transIert d`une table de $E020
$E02F a $E000 - $E00F.
a) en mode d`adressage etendu
b) en mode d`adressage direct
c) en mode d`adressage indexe (X : registre d`index)
2) Donner pour chaque mode d`adressage le code objet (listage en code machine).
Le Programme residera a l`adresse $8000 en memoire.
93
Exercice :
Une table est localisee entre $E000 et $E00F.
Mettre au point un programme comptant le nombre d`octets pairs de cette table (le
resultat etant place en $0000) et le nombre d`octets impaires (le resultat etant place en
$00001).
Exercice :
Ecrire un programme de multiplications par additions successives successives de 2
nombres binaires a et b.
- a est a l`adresse $0000.
- b est a l`adresse $0001.
- a x b sera place a l`adresse $0002.
Exercice : Addition sur 1 bits (SA+M)
Ecrire un programme source en langage assembleur du 6809 qui sert a additionner deux
nombres binaires sur 16 bits : NN
H
N
L
et MM
H
M
L
situes respectivement aux adresses
memoires (8030)
H
et (8040)
H
. Le resultat de l`addition sera range en memoire a
l`adresse (8050)
H
. On suppose qu`il peut y avoir une retenue Iinale C`. Dans ce cas
placer la retenue a l`adresse (804F)
H
.
a) en mode d`adressage etendu
b) en mode d`adressage direct
c) en mode d`adressage indexe (Y : registre d`index)
2) Donner pour chaque mode d`adressage le code objet (listage en code machine).
Le Programme residera a l`adresse $8000 en memoire.
94
$
8
3
N
H
$
8
3
1
N
L
$
8
4
M
H
$
8
4
1
M
L
$
8
4
F
C
o
c
t
e
t
2
$
8
S
H
95
5
o
c
t
e
t
1
$
8
4
F
S
L
o
c
t
e
t
0
Feuille de programmation
Titre du programme :
L
a
n
g
a
g
e
m
a
c
h
i
n
Langage assembleur
96
e
A
d
r
e
s
s
e
C
o
n
t
e
n
u
E
t
i
q
u
e
t
t
e
C
o
d
e
o
p
.
O
p
e
r
a
n
d
e
Commentai
res
97
98
Exercices (modes d'adressage)
Exercice :
Mettre au point un programme qui permet d`additionner element par element, deux
blocs qui debutent, respectivement, aux adresses BLK1 et BLK2 et qui ont le mme
nombre d`elements (COMPT contient ce nombre).
Page 218 livre
Exercice :
2) Etudiez les modes d`adressage utilises et donnez les contenus des registres ou de la
memoire apres chaque instruction.
ORG $0100
LDA #$0C
STA $1000
LDA #$10
TFR A,DP
LDA #$A7
STA $01
LDB 128
STB [ [[ [$1000] ]] ]
LDY $1000
LDA #$41
CLRB
STA B,Y
INCB
INCA
STA ,Y+
END
99
Instruction
A trois octets
Code opration
Donne ou adresse ventuelle
Donne ou adresse ventuelle
Instruction
A deux octets
Instruction
A un octet
100
PC B A Y X S U DP
RI Dcodeur Squenceur
Bus de donnes interne (8bits)
CCR
D
Unit de commande
Horloge
101
Accumulateur B
Pointeur de Pile Systme S
Compteur-Programme PC
Registre dindex X
Registre dindex Y
Registre de page DP
Registre dtat CC
Accumulateur A Accumulateur B
Pointeur de Pile Utilisateur U
Compteur-Programme PC
Registre dindex X
Registre dindex Y
Registre de page DP
Registre dtat CC
Accumulateur A
102
Tout microprocesseur opere en trois cycles :
- Rechercher la prochaine instruction (Fetch)
- Decoder l`instruction (Decode)
- Executer l`instruction (Execute)
Cycle de recherche :
Le contenu du compteur de programme (PC) est depose sur le bus d`adresse et envoye
vers la memoire.
Lorsqu`elle reoit le signal de lecture, la memoire depose sur le bus de donnees les 8
bits correspondant
au code operation de l`instruction en cours (on suppose une instruction d`un seul octet).
Alors le p lit le bus de donnees et depose son contenu dans le registre interne IR qui
sert a conserver le code operation de l`instruction que l`on vient de rechercher. Le cycle
de recherche est maintenant termine.
Cycle de decodage :
Une Iois le code operation se trouve dans IR, l`unite de commande du p va la decoder
et produire la
sequence appropriee de signaux permettant l`execution de l`instruction speciIiee. Il y a
donc un court delai de decodage suivi par une phase d`execution dont la longueur
depend de la nature de l`instruction consideree. Certaines instructions s`executent a
l`interieur du p. D`autres recherchent ou envoient des donnees en memoire. C`est
pourquoi les diIIerentes instructions du V ont des durees d`execution diIIerentes. Cette
duree est exprimee en cycles d`horloge.
Fetch
Decode
Execute
103
ABX - additionne l'accumulateur B au registre d'index X
Mnmonique . ABX
Fonction . X X B
Description . Afoute au registre dindex le contenu non signe de laccumulateur B. Le resultat est dans X.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . inherent
Exemple . ABX
Avant . Apres .
B$10 B$10
X$E000 X$E010
ADC - additionne le contenu mmoire un accumulateur avec retenue
Mnmonique . ADCA M , ADCB M
Fonction . ACCX ACCXMC
Description . Afoute le contenu de ladresse memoire ou la valeur suivant linstruction a laccumulateur
choisi puis la retenue C. Le resultat est dans laccumulateur.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . immediat, etendu, direct, indexe
Exemple . ADCA =$20
Avant . Apres .
A$10 A$31
C1 C0
ADD - additionne le contenu mmoire un accumulateur
Mnmonique . ADDA M , ADDB M , ADDD M
Fonction . ACCX ACCXM
Description . Afoute le contenu de ladresse memoire ou la valeur suivant linstruction a laccumulateur
choisi. Le resultat est dans laccumulateur.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . immediat, etendu, direct, indexe
104
Exemple . ADDA =$20
Avant . Apres .
A$10 A$30
AAD - E1 Logique entre mmoire et registre interne
Mnmonique . ANDA M , ANDB M , ANDCC =N
Fonction . R R . Donnee
Description . Effectue un AND entre le contenu de ladresse memoire ou la valeur suivant linstruction
et le registre choisi. Le resultat est dans laccumulateur.
Registre d'tat . ANDA/ANDB ANDCC
E F H I N Z J C E F H I N Z J C
0
Modes d'adressage . immediat, etendu, direct, indexe
Exemple . ANDA =$0F
Avant . Apres .
A$12 A$02
ASL - Dcalage arithmtique vers la gauche
Mnmonique . ASLA , ASLB , ASL M
Fonction .
Operande (A,B,M)
b
7
b
0
C
0
Description . Decale le contenu de ladresse memoire ou de laccumulateur choisi dun bit vers la
gauche. Le bit b
7
va dans la retenue C, le b
0
est mis a 0.resultat est dans laccumulateur.
Registre d'tat .
E F H I N Z J C
0
Modes d'adressage . inherent, etendu, direct, indexe
Exemple . ASLA
Avant . Apres .
A$12 A$24
C0 , N0 , Z0 , JNZ0
105
ASR - Dcalage arithmtique vers la droite
Mnmonique . ASLA , ASLB , ASL M
Fonction .
Operande (A,B,M)
b
7
b
0
C
Description . Decale le contenu de ladresse memoire ou de laccumulateur choisi dun bit vers la droite.
Le bit b
0
va dans la retenue C, le b
7
reste inchange (ceci permet de decaler des nombres signes).
Registre d'tat .
E F H I N Z J C
Modes d'adressage . inherent, etendu, direct, indexe
Exemple . ASLA
Avant . Apres .
A$80 A$C0
C0 , N1 , Z0
BCC - Branchement si retenue (pas de retenue)
Mnmonique . BCC N , LBCC NN
B
C
C
2
4
L
B
C
C
1
.
2
4
Fonction . Si C0 , alors . PC PC N ou PC PC NN
106
Description . Si le bit C est a 0, un branchement relatif au PC est alors execute. Le branchement court
permet dacceder a toute instruction situee entre 128 et 127 octets par rapport a loctet qui suit
linstruction de branchement. Le branchement long permet dacceder a nimporte quelle instruction de
lespace memoire 64 K..
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
Exemple .
A$20
CMPA =$10 C0 ($20~$10)
BCC ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BCS - Branchement si retenue 1
Mnmonique . BCS N , LBCS NN
B
C
S
2
5
L
B
C
S
1
.
2
5
Fonction . Si C1 , alors . PC PC N ou PC PC NN
Description . Si le bit C est a 1, un branchement relatif au PC est alors execute. Le deplacement est code
sur 8 bits ou 16 bits en complement a 2.
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
107
Exemple .
A$10
CMPA =$20 C1 ($10$20)
BCS ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BEQ - Branchement si gal
Mnmonique . BEQ N , LBEQ NN
B
E
Q
2
7
L
B
E
Q
1
.
2
7
Fonction . Si Z1 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant linstruction de branchement est nul (Z1), on se
branche a ladresse courante le deplacement (code sur 8 bits ou 16 bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
Exemple .
A$10
CMPA =$10 Z1 ($10$10)
BEQ ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BCE - Branchement si suprieur ou gal (sign)
Mnmonique . BGE N , LBGE NN
108
B
C
E
2
C
L
B
C
E
1
.
2
C
Fonction . Si (N J) 0 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant linstruction de branchement donne un resultat
valide et positif ou nul, on se branche a ladresse courante le deplacement (code sur 8 bits ou 16 bits
en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
Exemple .
A$20
CMPA =$10 N J0 ($20~$10)
BGE ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BC1 - Branchement si suprieur (sign)
Mnmonique . BGT N , LBGT NN
B
C
1
2
E
L
B
C
1
1
.
2
E
Fonction . Si Z(N J) 0 , alors . PC PC N ou PC PC NN
109
Description . Si le resultat de loperation precedant linstruction de branchement donne un resultat
valide et strictement positif, on se branche a ladresse courante le deplacement (code sur 8 bits ou 16
bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
Exemple .
A$20
CMPA =$10 Z(N J)0 ($20~$10)
BGE ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BHI - Branchement si suprieur (non sign)
Mnmonique . BHI N , LBHI NN
B
H
I
2
2
L
B
H
I
1
.
2
2
Fonction . Si ZC 0 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant nentraine ni retenue ni resultat nul, on se branche a
ladresse courante le deplacement (code sur 8 bits ou 16 bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
110
BHS - Branchement si suprieur ou gal (non sign)
Mnmonique . BHS N , LBHS NN
B
H
I
2
4
L
B
H
I
1
.
2
4
Fonction . Si C 0 , alors . PC PC N ou PC PC NN
Description . identique a BCC
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BI1 - 1est de bits
Mnmonique . BITA M , BITB M
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
B
I
T
8
5
9
5
B
5
A
5
111
A
B
I
T
B
C
5
D
5
F
5
E
5
Fonction . ACCX . M
Description . Laccumulateur specifie et loperande en memoire font lobfet dun AND et le resultat est
mis de cote. Seul le registre CCR est modifie, aucun des operandes ne lest.
Registre d'tat .
E F H I N Z J C
0
Modes d'adressage . immediat, etendu, direct, indexe
Exemple . linstruction BIT precede generalement les branchements conditionnels.
A$C5 BITA =$91 A$C5
N1, Z0
BLE - Branchement si infrieur ou gal (sign)
Mnmonique . BLE N , LBLE NN
B
L
E
2
F
L
B
L
E
1
.
2
F
Fonction . Si Z(N J) 1 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant linstruction de branchement donne un resultat
valide et negatif ou nul, on se branche a ladresse courante le deplacement (code sur 8 bits ou 16 bits
en complement a 2).
112
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
Exemple .
A$10
CMPA =$20 Z(N J)1 ($10$20)
BLE ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BLO - Branchement si infrieur (non sign)
Mnmonique . BHI N , LBHI NN
B
L
O
2
5
L
B
L
O
1
.
2
5
Fonction . Si Z 1 , alors . PC PC N ou PC PC NN
Description . identique a BCS
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
113
BLS - Branchement si infrieur ou gal (non sign)
Mnmonique . BLS N , LBLS NN
B
L
S
2
3
L
B
L
S
1
.
2
3
Fonction . Si CZ 1 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant entraine une retenue ou un resultat nul, on se
branche a ladresse courante le deplacement (code sur 8 bits ou 16 bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BL1 - Branchement si infrieur (sign)
Mnmonique . BLT N , LBLT NN
B
L
1
2
D
L
B
L
1
1
.
2
D
Fonction . Si N J 1 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant est valide et negatif, on se branche a ladresse
courante le deplacement (code sur 8 bits ou 16 bits en complement a 2).
114
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BMI - Branchement si ngatif
Mnmonique . BMI N , LBMI NN
B
M
I
2
B
L
B
M
I
1
.
2
B
Fonction . Si N 1 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant est negatif, on se branche a ladresse courante le
deplacement (code sur 8 bits ou 16 bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BAE - Branchement si diffrent
Mnmonique . BNE N , LBNE NN
B
A
E
2
L
B
A
E
1
.
2
115
Fonction . Si Z0 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant linstruction de branchement est different de 0
(Z0), on se branche a ladresse courante le deplacement (code sur 8 bits ou 16 bits en complement a
2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
Exemple .
A$10
CMPA =$20 Z0 ($10 $20)
BNE ETIQ
LDA =$02
.......
Etiq . ldb =$F0
BPL - Branchement si positif
Mnmonique . BPL N , LBPL NN
B
P
L
2
A
L
B
P
L
1
.
2
A
Fonction . Si N 0 , alors . PC PC N ou PC PC NN
Description . Si le resultat de loperation precedant est positif, on se branche a ladresse courante le
deplacement (code sur 8 bits ou 16 bits en complement a 2).
Registre d'tat . inchange
116
E F H I N Z J C
Modes d'adressage . relatif
BRA - Branchement inconditionnel
Mnmonique . BRA N , LBRA NN
B
R
A
2
L
B
R
A
1
.
2
Fonction . PC PC N ou PC PC NN
Description . un branchement inconditionnel a ladresse courante le deplacement (code sur 8 bits ou
16 bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BRA - AOA Branchement
Mnmonique . BRN N , LBRN NN
B
R
A
2
1
L
B
R
A
1
.
2
117
1
Fonction . Non operation
Description . Aucun branchement nest execute
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BSR - Branchement un sous-programme
Mnmonique . BSR N , LBSR NN
B
S
R
8
D
L
B
S
R
1
7
Fonction . PC
L
S-1 PC
H
S-2
PC PC N ou PC PC NN
Description . le compteur de programme est mis dans la pile svsteme et un branchement relatif est
execute a ladresse courante le deplacement (code sur 8 bits ou 16 bits en complement a 2).
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BJC - Branchement si pas de dbordement
Mnmonique . BJC N , LBJC NN
B
J
2
8
118
C
L
B
J
C
1
.
2
8
Fonction . Si J0 , alors PC PC N ou PC PC NN
Description . effectue un branchement si loperation precedante en complement a deux etait valide.
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
BJC - Branchement si dbordement
Mnmonique . BJC N , LBJC NN
B
J
S
2
9
L
B
J
S
1
.
2
9
Fonction . Si J1 , alors PC PC N ou PC PC NN
Description . effectue un branchement si loperation precedante en complement a deux netait pas valide.
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . relatif
119
CLR - Mise zro
Mnmonique . CLRA , CLRB , CLR M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
C
L
R
M
0
F
7
F
6
F
C
L
R
A
4
F
C
L
R
B
5
F
Fonction . ACCX 0 (ou) M 0
Description . Laccumulateur specifie ou loperande en memoire est mis a .
Registre d'tat .
E F H I N Z J C
0 1 0 0
Modes d'adressage . inherent, etendu, direct, indexe
CMP - Comparaison du contenu mmoire avec un accumulateur
120
Mnmonique . CMPA M , CMPB M , CMPD MM , CMPX MM , CMPY MM , CMPU MM, , CMPS
M
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
C
M
P
A
8
1
9
1
B
1
A
1
C
M
P
B
C
1
D
1
F
1
E
1
C
M
P
D
1
0
.
8
3
1
0
.
9
3
1
0
.
B
3
1
0
.
A
3
C
M
P
S
1
1
.
8
C
1
0
.
9
C
1
1
.
B
C
1
1
.
A
C
C
M
P
U
1
1
.
8
3
1
1
.
9
3
1
1
.
B
3
1
1
.
A
3
C
M
P
X
8
C
9
C
B
C
A
C
C
M
P
1
0
.
1
0
.
1
0
.
1
0
.
121
Y 8
C
9
C
B
C
A
C
Fonction . (R) (M)
Description . Compare le contenu du registre specifie et le contenu de la memoire (1 ou 2 octets). Les
bits du registre CCR sont modifies en fonction du resultat.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . immediat, etendu, direct, indexe
COM - Complmentation
Mnmonique . COMA , COMB , COM M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
C
O
M
M
0
3
7
3
6
3
C
O
M
A
4
3
C
O
5
3
122
M
B
Fonction . ACCX ACCX (ou) M M
Description . Laccumulateur specifie ou loperande en memoire est complemente a 1 .
Registre d'tat .
E F H I N Z J C
0 1
Modes d'adressage . inherent, etendu, direct, indexe
CWAI - Attente d'interruption
Mnmonique . CCWAI =$N
I
n
h
e
r
e
n
t
C
W
A
I
=
$
N
3
C
Fonction . CCR CCR and N
123
Description . effectue un and logique entre le contenu de registre detat et loctet memoire immediat. On
peut de cette faon effacer les masques dinterruptions. letat entier du processeur est sauvegarde dans la
pile svsteme.
Registre d'tat . (en fonction de $N)
E F H I N Z J C
Modes d'adressage . immediat
DAA - Ajustement dcimal
Mnmonique . DAA
I
n
h
e
r
e
n
t
D
A
A
1
9
Fonction . A A correction
Correction .
Quartet de poids faible .
. 6 si H 1,
. 0 dans les autres cas.
Quartet de poids faible .
. 6 si C 1,
. 0 dans les autres cas.
Description . Le facteur de correction approprie est calcule en sa basant sur les valeurs du quartet de
poids le plus fort de A , du quartet le poids le plus faible de A et sur les indicateurs detat. Il est alors
124
additionne a A. Cette instruction peut tre utile apres laddition de deux nombres BCD pour assurer un
resultat BCD correct.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . inherent
DEC - Dcrmentation
Mnmonique . DECA , DECB , DEC M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
D
E
C
M
0
A
7
A
6
A
D
E
C
A
4
A
D
E
C
B
5
A
Fonction . ACCX ACCX 1 (ou) M M 1
Description . Laccumulateur specifie ou loperande en memoire est soustrait de un .
125
Registre d'tat .
E F H I N Z J C
J1 si l'oprande d'origine tait $8,
sinon mis .
Modes d'adressage . inherent, etendu, direct, indexe
EOR - OU Exclusif
Mnmonique . EORA M , EORB M
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
E
O
R
A
8
8
9
8
B
8
A
8
E
O
R
B
C
8
D
8
F
8
E
8
Fonction . ACCX ACCX M
Description . Effectue un XOR entre le contenu memoire ou loctet immediat et laccumulateur.
Registre d'tat .
E F H I N Z J C
0
Modes d'adressage . immediat, etendu, direct, indexe
126
EXC - Echange de registre
Mnmonique . EXG R1,R2
I
n
h
e
r
e
n
t
E
X
G
1
E
Fonction . R1 R2
Description . Echange le contenu des deux registres.
Registre d'tat . inchange sauf si un des registres est le registre detat.
E F H I N Z J C
Modes d'adressage . immediat
Exemple : EXC A,DP
IAC - Incrmentation
Mnmonique . INCA , INCB , INC M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
127
I
N
C
M
0
C
7
C
6
C
I
N
C
A
4
C
I
N
C
B
5
C
Fonction . ACCX ACCX 1 (ou) M M 1
Description . Un 1 est afoute a laccumulateur specifie ou loperande en memoire.
Registre d'tat .
E F H I N Z J C
J1 si l'oprande d'origine tait $7F,
sinon mis .
Modes d'adressage . inherent, etendu, direct, indexe
1MP - Saut
Mnmonique . JMP M
D
i
r
e
c
E
t
e
n
d
I
n
d
e
x
128
t u e
J
M
P
M
0
E
7
E
6
E
Fonction . PC ADDRM
Description . la valeur de loperande en memoire est transferee dans le PC et le deroulement du
programme continue a cette adresse.
Registre d'tat . inchange
E F H I N Z J C
Modes d'adressage . etendu, direct, indexe
1SR - Saut un sous-programme
Mnmonique . JSR M
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
J
S
R
M
9
D
B
D
A
D
Fonction . S 1 PC
L
, S 2 PC
H
PC ADDRM
Description . Charge le contenu du PC dans la pile puis transfere sans condition lexecution du
programme a un emplacement designe par ladresse effective qui suit le code operation.
Registre d'tat . inchange
129
E F H I N Z J C
Modes d'adressage . etendu, direct, indexe
LD - Chargement d'un registre
Mnmonique . LDA M, LDB M , LDD MM , LDX MM , LDY MM , LDU MM, , LDS M
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
L
D
A
8
6
9
6
B
6
A
6
L
D
B
C
6
D
6
F
6
E
6
L
D
D
C
C
D
C
F
C
E
C
L
D
S
1
0
.
C
E
1
0
.
D
E
1
0
.
F
E
1
0
.
E
E
L
D
U
C
E
D
E
F
E
E
E
L
D
X
8
E
9
E
B
E
A
E
L
D
Y
1
0
.
1
0
.
1
0
.
1
0
.
130
8
E
9
E
B
E
A
E
Fonction . ACCX M
Description . Loperande en memoire est charge dans le registre specifie.
Registre d'tat .
E F H I N Z J C
0
Modes d'adressage . immediat, etendu, direct, indexe
LEA - Chargement d'un registre partir de la mmoire
Mnmonique . LEAX M, LEAY M , LEAS M , LEAU M
I
n
d
e
x
e
L
E
A
S
3
2
L
E
A
U
3
3
L
E
A
X
3
0
L
E
3
1
131
A
Y
Fonction . RR ADDRM
Description . Calcule ladresses effective en fonction du mode dadressage indexe et charge cette valeur
dans le pointeur designe.
Registre d'tat .
E F H I N Z J C
LEAX et LEAY affectent Z. LEAS et LEAU n'affectent pas Z
Mode d'adressage . indexe
Exemple : X $E1 LEAX -1,X
X$E
Z
LSL - Dcalage logique gauche
Mnmonique . LSLA , LSLB , LSL M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
L
S
L
M
0
8
7
8
6
8
L 4
132
S
L
A
8
L
S
L
B
5
8
Fonction .
Operande (A,B,M)
b
7
b
0
C
0
Description . Decale le contenu de ladresse memoire ou de laccumulateur choisi dun bit vers la
gauche. Le bit b
7
va dans la retenue C, le b
0
est mis a 0. Identique a ASL.
Registre d'tat .
E F H I N Z J C
J A C aprs dcalage
Modes d'adressage . inherent, etendu, direct, indexe
Exemple : A$C9 LSLA A$92
N Z J C
1 0 0 1
LSR - Dcalage logique droite
Mnmonique . LSRA , LSRB , LSR M
I D E I
133
n
h
e
r
e
n
t
i
r
e
c
t
t
e
n
d
u
n
d
e
x
e
L
S
R
M
0
4
7
4
6
4
L
S
R
A
4
4
L
S
R
B
5
4
Fonction .
Operande (A,B,M)
b
7
b
0
0
C
Description . Decale le contenu de ladresse memoire ou de laccumulateur choisi dun bit vers la droite.
Le bit b
0
va dans la retenue C, le b
7
est mis a 0.
Registre d'tat .
E F H I N Z J C
0
134
Modes d'adressage . inherent, etendu, direct, indexe
Exemple : A$C9 LSRA A$4
N Z C
0 0 1
MUL - Multiplication
Mnmonique . MUL
I
n
h
e
r
e
n
t
M
U
L
3
D
Fonction . D A x B
Description . Multiplie le contenu de A par celui de B (nombres binaires non signes) et range le resultat
dans D.
Registre d'tat .
E F H I N Z J C
Cb7 du registre B
Mode d'adressage . inherent
Exemple : A$C7 MUL D$19A7
B$21
135
Z C
0 1
AEC - Complment 2
Mnmonique . NEGA , NEGB , NEG M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
L
S
R
M
0
0
7
0
6
0
L
S
R
A
4
0
L
S
R
B
5
0
Fonction . ACCX 0 ACCX (ou) M 0 - M
Description . Remplace le contenu de laccumulateur ou loctet memoire par son complement a 2.
Registre d'tat .
E F H I N Z J C
J1 si l'oprande d'origine tait $8
J autrement
136
Modes d'adressage . inherent, etendu, direct, indexe
AOP - Pas d'opration
Mnmonique . NOP
I
n
h
e
r
e
n
t
N
O
P
1
2
Fonction . Ne fait rien
Description . Aucun des registres internes ou des emplacements memoires ne sont affectes. Utilise le
temps et lespace memoire.
Registre d'tat . inchange
E F H I N Z J C
Mode d'adressage . inherent
OR - OU logique entre mmoire et registre
Mnmonique . ORA M , ORB M
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
O 8 9 B A
137
R
A
A A A A
O
R
B
C
A
D
A
F
A
E
A
O
R
C
C
1
A
Fonction . ACCX ACCX OR M
Description . Le contenu de laccumulateur ou le registre CCR et loperande en memoire font lobfet
dun OU logique.
Registre d'tat .
Registre d'tat . ORA/ORB ORCC
E F H I N Z J C E F H I N Z J C
0
Change suivant
loperande
Modes d'adressage . immediat, etendu, direct, indexe
PSH - Empilement de registres dans la pile systme
Mnmonique . PSH liste des registres , PSH =$N
I
n
h
e
r
e
n
t
P
S
3
4
138
H
S
P
S
H
U
3
6
Fonction . S S n , U U n
Description . Empile un, plusieurs ou lensemble des registres dans la pile svsteme (S) ou utilisateur (U).
Les registres sont ranges dans lordre . PC .....CCR .
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
P
C
U
o
u
S
Y X D
P
B A C
C
Ordre d`empilement
Registre d'tat . inchange
E F H I N Z J C
Mode d'adressage . immediat
Exemple : U$7FE8 PSHU A,X U$7FE5 X $7FE6/7
PSHU #$22 A $7FE5
PUL - Dpilement de registres dans la pile systme
139
Mnmonique . PUL liste des registres , PUL =$N
I
n
h
e
r
e
n
t
P
U
L
S
3
5
P
U
L
U
3
7
Fonction . S S n , U U n
Description . Depile un, plusieurs ou lensemble des registres dans la pile svsteme (S) ou utilisateur (U)
sauf le pointeur lui-mme (S ou U). Les registres sont depiles dans lordre . PC .....CCR .
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
P
C
U
o
u
S
Y X D
P
B A C
C
Ordre de depilement
Registre d'tat . inchange
E F H I N Z J C
140
Mode d'adressage . immediat
Exemple : U$43C1 PULU CCR,A,X U$43C5 $43C1 CCR
PSHU #$23 $43C2 A
$43C3/4 X
ROL - Rotation gauche
Mnmonique . ROLA , ROLB , ROL M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
R
O
L
0
9
7
9
6
9
R
O
L
A
4
9
R
O
L
B
5
9
141
Fonction .
Operande (A,B,M)
b
7
b
0
C
Description . Effectue une rotation dune position vers la gauche de tous les bits de laccumulateur ou de
loctet memoire specifie a travers lindicateur C (rotation sur 9 bits).
Registre d'tat .
E F H I N Z J C
Prend la valeur de b7 de l'oprande
d'origine
b7 b de l'oprande d'origine
Modes d'adressage . inherent, etendu, direct, indexe
Exemple : ROLB
Avant : B$89 Aprs : B$13
CC$9 CC$3
ROR - Rotation droite
Mnmonique . RORA , RORB , ROR M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
142
R
O
R
0
6
7
6
6
6
R
O
R
A
4
6
R
O
R
B
5
6
Fonction .
Operande (A,B,M)
b
7
b
0
C
Description . Effectue une rotation dune position vers la droite de tous les bits de laccumulateur ou de
loctet memoire specifie a travers lindicateur C (rotation sur 9 bits).
Registre d'tat .
E F H I N Z J C
Prend la valeur de b de l'oprande
d'origine
Modes d'adressage . inherent, etendu, direct, indexe
Exemple : RORB
Avant : B$89 Aprs : B$C4
CC$9 CC$9
143
R1I - Retour d'interruption
Mnmonique . RTI
I
n
h
e
r
e
n
t
R
T
I
3
B
Fonction . (SP) CCR
Description . Apres un programme de traitement dinterruption, cette instruction est utilisee pour
retourner au programme initial. Le CCR est depile, puis suivant le resultat du test sur E, tout le contexte
du microprocesseur est depile (E1) ou seulement le compteur programme (E0).
Registre d'tat . Prend la valeur du CCR qui etait sauvegarde dans la pile.
E F H I N Z J C
Mode d'adressage . inherent
R1S - Retour de sous-programme
Mnmonique . RTS
I
n
h
144
e
r
e
n
t
R
T
S
3
9
Fonction . S PC
L
, S 1 PC
H
PC ADDRM
Description . Le PC est retire de la pile svsteme. Cette instruction a leffet contraire des instructions BSR
et JSR et doit tre placee a la fin dun sous-programme.
Registre d'tat . inchange
E F H I N Z J C
Mode d'adressage . inherent
SBC - Soustraction avec retenue
Mnmonique .SBCA M , SBCB M
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
S
B
C
A
8
2
9
2
B
2
A
2
S C D F E
145
B
C
B
2 2 2 2
Fonction . ACCX ACCX M - C
Description . Soustrait le contenu de ladresse memoire ou la valeur suivant linstruction a
laccumulateur choisi puis la retenue C. Le resultat est dans laccumulateur.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . immediat, etendu, direct, indexe
Exemple . SBCA $03
Avant . Apres .
DP$45 DP$45
B$35 A$31
CC$01 CC$20
$4503 . $03 $4503 .$03
SBC - Soustraction avec retenue
Mnmonique .SBCA M , SBCB M
Fonction . ACCX ACCX M - C
Description . Soustrait le contenu de ladresse memoire ou la valeur suivant linstruction a
laccumulateur choisi puis la retenue C. Le resultat est dans laccumulateur.
Registre d'tat .
E F H I N Z J C
Modes d'adressage . immediat, etendu, direct, indexe
Exemple . SBCA $03
Avant . Apres .
DP$45 DP$45
B$35 A$31
CC$01 CC$20
$4503 . $03 $4503 .$03
S1 - Stockage d'un registre en mmoire
Mnmonique . STA M, STB M , STD MM , STS MM , STU MM , STX MM, STY M
146
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
S
T
A
9
7
B
7
A
7
S
T
B
D
7
F
7
E
7
S
T
D
D
D
F
D
E
D
S
T
S
1
0
.
D
F
1
0
.
F
F
1
0
.
E
F
S
T
U
D
F
F
F
E
F
S
T
X
9
F
B
F
A
F
S
T
Y
1
0
.
9
F
1
0
.
B
F
1
0
.
A
F
Fonction . M ACCX
Description . Le contenu de laccumulateur specifie est stocke dans lemplacement memoire indique.
Registre d'tat .
E F H I N Z J C
147
0
Modes d'adressage . etendu, direct, indexe
Exemple . STA $E000
SUB - Soustraction du contenu mmoire l'accumulateur
Mnmonique . SUBA M, SUBB M , SUBD MM
I
m
m
e
d
i
a
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
S
U
B
A
8
0
9
0
B
0
A
0
S
U
B
B
C
0
D
0
F
0
E
0
S
U
B
D
8
3
9
3
B
3
A
3
Fonction . ACCX ACCX - M
Description . Loperande en memoire est soustrait de laccumulateur specifie. Le bit C est une retenue de
soustraction .
Registre d'tat .
E F H I N Z J C
148
Modes d'adressage . immediat, etendu, direct, indexe
Exemple . SUBA $E000
SWI - Interruption logicielle
Mnmonique . SWI
I
n
h
e
r
e
n
t
S
U
B
A
3
F
S
W
I
2
1
0
.
3
F
S
W
I
3
1
1
.
3
F
Fonction . ACCX ACCX - M
Description . Letat complet est sauvegarde dans la pile svsteme. Le controle du programme est transfere
par le vecteur dinterruption 1. Les interruptions rapides et normales sont invalidees.
Registre d'tat . inchange
149
E F H I N Z J C
Mode d'adressage . inherent
150
SYAC - Synchronisation d'un vnement extrieur
Mnmonique . SYNC
I
n
h
e
r
e
n
t
S
Y
N
C
1
3
Fonction . Arrt de lexecution des instructions
Description . Le processeur sarrte et attend larrivee dune interruption.
Registre d'tat . inchange
E F H I N Z J C
Mode d'adressage . inherent
1FR - 1ransfert de registre registre
Mnmonique . TFR R1,R2
I
n
h
e
r
e
n
t
151
T
F
R
1
F
Fonction . R2 R1
Description .
Registre d'tat . inchange
E F H I N Z J C
Mode d'adressage . inherent
1S1 - 1est du contenu mmoire ou d'un accumulateur
Mnmonique . TSTA , TSTB , TST M
I
n
h
e
r
e
n
t
D
i
r
e
c
t
E
t
e
n
d
u
I
n
d
e
x
e
T
S
T
0
D
7
D
6
D
T
S
T
A
4
D
T
S
5
D
152
T
B
Fonction . ACCX 0 (ou) M - 0
Description . Les bits Z et N sont affectes suivant la valeur de loperande specifie. Le bit J est mis a 0.
Registre d'tat .
E F H I N Z J C
0
Modes d'adressage . inherent, etendu, direct, indexe
153
154
Instruction
Dcodeur
+1
PC
Instruction
IR
Mmoire
CPU
Bus dadresse
Commande
De Lecture
Bus de donnes
Signaux