Sie sind auf Seite 1von 7

Jeu dinstructions du 6809

On peut classer les instructions du 60809 en six catgories principales :


- Instructions de transfert de donnes
- Instructions de traitement de donnes
- Instructions de pointeurs de donnes
- Instructions de tests et branchements
- Instructions dentres-sorties
- Instructions de commandes

1. - Instructions de transfert de donnes


Les instructions de transfert de donnes transmettent des donnes entre :
- les registres internes du 6809;
- les registres internes et la mmoire;
- les pointeurs.

1.1. Instructions de transfert sur les registres internes


Les instructions EXG et TFR permettent le transfert de donnes entre les
registres internes.
Le transfert ne peut se faire que sur des registres de mme taille.
EXG R1,R2 Les contenus des registres R1 et R2 sont changs.
Exemple : EXG A,DP
TFR R1,R2 Le contenu du registre R1 est transfr dans le
registre R2.
Exemple : TFR D,X

1.2. Instructions de transfert sur les registres internes et la


mmoire
Les instructions LD (LOAD : charger) et ST (Store : stocker)
permettent le transfert de donnes entre les registres internes et la
mmoire.
Instruction Fonction

KARIM Mohammed FSDM fs Page 1 04/12/2007


LD la donne en mmoire est charge dans le registre spcifie
ST Le contenu du registre interne spcifi dans linstruction est
transfr dans lemplacement mmoire indiqu.

Exemple :
LDA $1000 charger laccumulateur A avec le contenu de $1000
STA $2000 Stocker le contenu de lAcc. A ladresse mmoire $2000

1.3. instructions de transfert sur les pointeurs


Les instructions PUSH (empiler) et PULL (dpiler) permettent le
transfert des registres internes dans la pile en mmoire. Les registres
empiler/dpiler sont indiqus dans loctet (post octet) qui suit
immdiatement le code opration de linstruction PUSH/ PULL. Chaque
bit du post octet indique un registre interne

b7 b6 b5 b4 b3 b2 b1 b0
PC U ou S Y X DP B A CC
Ordre
dempilement

Ordre de dpilement

Quand un de ces bits vaut 1, le registre correspondant est empil/dpil.


Le pointeur de pile spcifi dans linstruction ne peut tre empil/dpil.
Chaque fois quun octet est mis dans une pile, le pointeur de pile est
dcrment de 1. Pour un registre de 16 bits, on empile dabord loctet de
poids faible dans la pile. Le dpilement est identique except quil
incrmente le pointeur de pile.

Instruction Fonction
PSH Empilement de(s) registre(s) dans la pile.

KARIM Mohammed FSDM fs Page 2 04/12/2007


PUL Dpilement de(s) registre(s) de la pile.

Exemple :
PSHS #$FF

ssss - C CC
ssss - B A
ssss -A B
ssss - 9 DP
ssss - 8 X-haut
ssss - 7 X-bas
ssss - 6 Y-haut
ssss - 5 Y-bas
ssss - 4 U-haut
ssss - 3 U-bas
ssss - 2 PC-haut
ssss - 1 PC-bas
ssss

2. - Instructions de traitement de donnes


Les instructions de traitement de donnes peuvent tre classes en quatre catgories :
- les instructions arithmtiques;
- les instructions logiques;
- les instructions de dplacements (rotation et de dcalage);
- Les instructions dincrmentation/dcrmentation, mise zro, complmentation

2.1. Instructions arithmtiques


Les instructions arithmtiques sont listes dans le tableau suivant :

KARIM Mohammed FSDM fs Page 3 04/12/2007


Instruction Fonction
ADD Addition du contenu mmoire un accumulateur
ADC Addition du contenu mmoire un accumulateur avec retenue
ABX Addition de laccumulateur B X
DAA Ajustement dcimal de lacc. A
MUL Multiplication de A par B (non signe)
SUB Soustraction du contenu mmoire un accumulateur
SBC Soustraction du contenu mmoire un accumulateur avec
retenue
SEX Extension de signe de laccu. B lacc. A

2.2. Instructions logiques


Les instructions logiques sont listes dans le tableau suivant :
Instruction Fonction
AND ET logique entre mmoire et registre interne
EOR XOR entre mmoire et registre interne
OR OU logique entre mmoire et registre interne

Linstruction AND est utile pour mettre 0 ou masquer un ou


plusieurs bits dans un mot. Linstruction XOR est utile pour des
comparaisons. On peut lutiliser aussi pour complmenter un mot (EORA
#$FF).

2.3. Instructions de dplacements (rotation et de dcalage)


Il faut tout dabord distinguer entre une opration de dcalage et une
opration de rotation.
Dans une opration de dcalage, tous les bits sont dcals dune position
vers la droite ou vers la gauche. Le bit qui sort du registre va dans le bit
de retenue C ; le bit qui entre est un zro.
Dans une opration de rotation, le bit entrant dans le registre est celui qui
provient de la retenue C.

Instruction Fonction

KARIM Mohammed FSDM fs Page 4 04/12/2007


ASR Dcalage arithmtique droite.
Les bits sont dcals vers la droite. b0 est transfr vers C et b7 reste inchang
LSL ou ASL Dcalage logique ou arithmtique gauche.
Les bits sont dcals vers la gauche. b7 est transfr vers C et b0 est mis 0.
LSR Dcalage logique droite.
Les bits sont dcals vers la droite. b0 est transfr vers C et b7 est mis 0.
ROL Rotation gauche
Les bits subissent une rotation vers la gauche. b7 est transfr vers C et la valeur
dorigine de celui-ci est transfre vers b0.
ROR Rotation droite
Les bits subissent une rotation vers la droite. b0 est transfr vers C et la valeur
dorigine de celui-ci est transfre vers b7.

Exemple :
RORA ; ROLB ; LSRA ; LSRB

2.4. Instructions dincrmentation/dcrmentation, mise zro,


complmentation
Ces instructions sont listes dans le tableau suivant :
Instruction Fonction
CLR Remise 0 du contenu mmoire ou de laccumulateur

DEC Dcrmentation du contenu mmoire ou de laccumulateur

INC Incrmentation du contenu mmoire ou de laccumulateur

COM Complment 1 du contenu mmoire ou de laccumulateur

NEG Complment 2 du contenu mmoire ou de laccumulateur

NOP Pas dopration. Incrmentation du compteur programme

3. Instructions de tests et branchements


Les instructions de tests et branchements peuvent tre classes en trois catgories :
- les instructions de tests et de comparaison;
- les instructions de tests et branchements;
- les instructions de test et branchement

3.1. instructions de tests et de comparaison

KARIM Mohammed FSDM fs Page 5 04/12/2007


Ces instructions sont utilises pour raliser des tests de bits dtat et
des comparaisons afin de pouvoir prendre des dcisions au cours du
droulement dun programme dpendant de la valeur de ces indicateurs.
Seul le registre dtat est modifi ; ni le registre spcifi ni loprande en
mmoire ne sont changs. Aucun branchement nest effectu.
Ces instructions sont listes dans le tableau suivant :
Instruction Fonction
BIT Test de bits BITA M ; BITB M
Lacc. (A ou B) spcifi et loprande en mmoire font lobjet dun ET logique.
CMP Comparaison dun contenu mmoire avec un accumulateur CMPA ; CMPB
ACCX M
TST Test du contenu mmoire ou dun accumulateur TSTA ; TSTB ; TST M
ACCX 0 ; M0

3.2. instructions de test et branchement


Ces instructions effectuent des tests sur 4 indicateurs du registre
dtat (C, N, Z, V) afin de raliser des branchements au cours du
droulement dun programme dpendant de la valeur de ces indicateurs.
Deux types de branchement existent :
- Un branchement cours : dplacement entre 128 et +127
- Un branchement long : dplacement entre 32768 et +32767.
Les instructions utilisant un branchement long ont une lettre L qui
prcde leurs mnmoniques.
Ces instructions sont listes dans le tableau suivant :

Instruction Fonction
BCC ou BHS Branchement si pas de retenue BCC N ; LBCC NN
Si C=0, alors : PC PC + N (ou) PC PC + NN
BCS ou BLO Branchement si retenue BCS N ; LBCS NN

BEQ Branchement si gal zro

BNE Branchement si diffrent de zro

BGE Branchement si suprieur ou gal zro (sign)


Si (NV)=0 alors : PC PC + N (ou) PC PC + NN
BLT Branchement si infrieur (sign)

BGT Branchement si suprieur (sign)

KARIM Mohammed FSDM fs Page 6 04/12/2007


BLE Branchement si infrieur ou gal (sign)

BHI Branchement si suprieur (non sign)

BLS Branchement si infrieur ou gal (non sign)

BMI Branchement si ngatif

BPL Branchement si positif

BVC Branchement si pas de dbordement

BVS Branchement si dbordement

5. instructions de traitement des interruptions

Le tableau suivant illustre ces instructions :


Instruction Fonction
CWAI Mise zro dindicateurs dtat et attente dinterruption CWAI #N
CC = CC and N. Ceci peut mettre 0 certains bits donc dmasquer les
interruptions.
SYNC Synchronisation avec une ligne dinterruption SYNC

RTI Retour de sous-programme dinterruption RTI

SWI/SWI2/SWI3 Interruptions logicielles


Ltat complet est sauvegard dans la pile systme.

KARIM Mohammed FSDM fs Page 7 04/12/2007

Das könnte Ihnen auch gefallen