Le jeu d’instruction du 6809
Le jeu d’instructions du 6809
1. Introduction :
Le jeu d’instruction du microprocesseur 6809 est très performant, bien que le nombre
de mnémoniques soit limité. Cette partie est consacrée à la répartition des instructions par
groupes, en fonction de leurs caractéristiques.
2. Classification des instructions :
On retrouve dans le jeu d’instruction du 6809 les différents groupes d’instructions
disponibles sur un calculateur.
a. Instructions de traitement des données :
Les instructions de traitement des données se répartissent en quatre catégories :
- les instructions arithmétiques
- les instructions de rotation et décalage
- les instructions logiques
- les instructions d’incrémentation-décrémentation, mise à 0, complémentation.
b. Les instructions arithmétiques :
Le tableau suivant nous donne l’ensemble des fonctions arithmétiques classiques. Il faut
noter la présence de la multiplication, ce qui n’est pas courant sur l’éventail des
microprocesseurs du marché. Cet apport donne une capacité de traitement plus efficace. Il
est toutefois dommage que la division n’existe pas.
Instruction Fonction
ADD Addition du contenu mémoire à un accumulateur
ADC Addition du contenu mémoire à un accumulateur avec retenue
ABX Addition de l’accumulateur B à X (non signée)
A. FAKKAR 42
Le jeu d’instruction du 6809
DAA Ajustement décimal de l’accumulateur A
MUL Multiplication de A par B (non signée)
SUB Soustraction du contenu mémoire à l’accumulateur
SBC Soustraction du contenu mémoire à l’accumulateur avec retenue
SEX Extension de signe de B à A
c. Les instructions de rotation et décalage :
Ces instructions opèrent sur des déplacements de 1 bit seulement. Dans le cas d’une
rotation, le bit sortant va dans la retenue C, dont le précédent contenu entre dans le registre
de travail, on ne peut de ce fait obtenir que des rotations sur 9 bits. En ce qui concerne les
instructions de décalage, le bit sortant va dans la retenue C, le bit entrant est toujours nul.
Le MC6809 possède une instruction de décalage arithmétique à droite, très utile pour les
déplacements à droite, d’un nombre négatif en complément à deux.
Instruction Fonction
ASR Décalage arithmétique à droite
LSL ou ASL Décalage logique ou arithmétique à gauche
LSR Décalage logique à droite
ROL Rotation à gauche
ROR Rotation à droite
d. Les instructions logiques :
Les instructions logiques du 6809 sont identiques aux instructions logiques de la plupart
des microprocesseurs existants. Elles portent toutes exclusivement sur des données de 8
bits.
A. FAKKAR 43
Le jeu d’instruction du 6809
Instruction Fonction
AND ET LOGIQUE entre mémoire et registre interne
EOR OU EXCLUSIF entre mémoire et registre interne
OR OU LOGIQUE entre mémoire et registre interne
e. Les instructions d’incrémentation-décrémentation, mise à 0, complémentation :
Ces instructions ont la particularité de n’agir que sur une seule opérande sauf
l’instruction NOP qui bien qu’elle ne réalise aucune opération, elle incrémente le compteur
de 1.
Instruction Fonction
CLR Remise à 0 du contenu mémoire ou de l’accumulateur
DEC Décrémentation du contenu mémoire ou de l’accumulateur
INC Incrémentation du contenu mémoire ou de l’accumulateur
NOP Pas d’opération, incrémentation du PC
COM Complément à un du contenu mémoire ou de l’accumulateur
NEG Complément à deux du contenu mémoire ou de l’accumulateur
f. Instruction de transfert des données :
On peut classer les instructions de transfert des données en 3 catégories :
- instructions opérant sur les registres internes et la mémoire
- instructions de transfert opérant sur les pointeurs
- instructions opérant seulement sur les registres internes du microprocesseur
A. FAKKAR 44
Le jeu d’instruction du 6809
g. Instructions opérant sur les registres internes et la mémoire :
Ce type d’instruction est très employé. Les transferts mémoire-registre interne se font
sur 8 bits (A, B) ou sur 16 bits (D, X, Y ,U, S).
Instruction Fonction
LD Chargement des registres internes du MPU
ST mise en mémoire des registres internes du MPU
h. Instructions de transfert opérant sur les pointeurs :
Pour accéder aux piles du 6809, il existe deux instructions « d’empilage » et de
« dépilage ».Ces instructions transfèrent n’importe quel registre interne du
microprocesseur.
Instruction Fonction
PSH Empilement de(s) registre(s) sur la pile
PUL Dépilement de(s) registre(s)
i. Instructions opérant sur les registres internes du microprocesseur :
La seule condition à observer est de transférer des registres de même taille.
Instruction Fonction
EXB Echange du contenu de deux registres
TFR Transfert de registre à registre
j. Instructions de tests et branchements :
Ces instructions peuvent se répartir en 3 catégories :
A. FAKKAR 45
Le jeu d’instruction du 6809
- les instructions de test et de comparaison
- les instructions de test et branchement
- les instructions de saut et branchement
k. Les instructions de test et de comparaison :
Ces instructions sont utilisées pour réaliser des tests de bits et de comparaison. Les
contenus mémoire et accumulateur ne sont pas modifiés. Le résultat de ces instructions agit
uniquement sur les indicateurs du registre d’état, il n’entraîne pas de rupture de séquence
(aucun branchement n’est effectué).
Instruction Fonction
BIT Test de bit entre accumulateur et contenu mémoire
CMP Comparaison du contenu mémoire (1 ou 2 octets) avec registre
interne (8 ou 16 bits) du microprocesseur
TST Test du contenu mémoire ou d’un accumulateur
l. Instructions de test et branchement :
Ces instructions permettent de réaliser des branchements conditionnels. Les tests
s’effectuent sur 4 indicateurs du registre d’état :
- N : bit de signe ou bit « négatif » (bit 3 de CCR)
- Z : indique si le résultat de l’opération est égal ou différent de 0 (bit 2 de CCR)
- V : indicateur de débordement (bit1 de CCR)
- C : bit de retenue (bit 0 de CCR)
Ces 4 bits sont testés seuls ou en combinaison, on obtient de ce fait 14 instructions de
test. Les branchements sont réalisés à partir de l’adresse de l’instruction en cours, ils sont
A. FAKKAR 46
Le jeu d’instruction du 6809
codés sur 8 bits (déplacement compris entre -128 et +127) ou sur 16 bits (déplacement
compris entre -32768 et +32767). La lettre « L » précédant le mnémonique précise qu’il
s’agit d’un déplacement long (16 bits).
Instruction Fonction
(L) BCC OU (L) BHS Branchement si pas de retenue
(L)BCS OU (L) BLO Branchement si retenue
(L) BEQ Branchement si égal à zéro
(L) BNE Branchement si différent de zéro
(L) BGE Branchement si supérieur ou égal (signé)
(L) BLT Branchement si inférieur (signé)
(L) BGT Branchement si supérieur (signé)
(L) BLE Branchement si inférieur ou égal (signé)
(L) BHI Branchement si supérieur (non signé)
(L) BLS Branchement si inférieur ou égal (non signé)
(L) BMI Branchement si négatif
(L) BPL Branchement si positif
(L) BVC Branchement si pas de débordement
(L) BVS Branchement si débordement
m. Instruction de saut et branchement :
Le tableau suivant regroupe les instructions entraînant des ruptures de séquences, sans
conditions préalables. Il faut différencier les instructions de branchement qui sont suivies
A. FAKKAR 47
Le jeu d’instruction du 6809
d’un déplacement long ou court des instructions de saut qui sont, elles, suivies de l’adresse
effective.
INSTRUCTION FONCTION
(L) BRA Branchement inconditionnel
(L) BRN Non branchement (non opération)
(L) BSR Branchement à un sous-programme
JMP Saut inconditionnel à une adresse effective
JSR Saut à un sous-programme
RST Retour de sous-programme
n. Instruction opérant sur les pointeurs :
Le MC6809 possède une instruction de ce type qui offre à l’utilisateur de multiples
possibilités. Le processeur calcule une adresse effective en fonction du mode d’adressage
spécifique (toujours indexé) puis charge cette valeur dans le pointeur.
INSTRUCTION FONCTION
LEA Chargement d’un registre pointeur avec une adresse effective
Le tableau de l’annexe résume les détails de l’ensemble des instructions en association
avec les modes d’adressages. Pour chaque instruction le tableau donne le code opération,
la taille et le nombre de cycle nécessaire pour l’exécution de l’instruction. Un descriptif
symbolique détaillant l’action de l’instruction est donnée. Pour chaque instruction le
tableau indique l’affectation possible des indicateurs.
A. FAKKAR 48