Vous êtes sur la page 1sur 3

Université Ferhat Abbas De Sétif

Faculté de Technologie
Département d’électrotechnique
Option : License Automatique
Module : LAT 54 2020

Chapitre 2 Jeux d’instructions 6809

Introduction :
La première étape de la conception d’un microprocesseur est la définition de son jeu d’instructions
décrit l’ensemble des opérations élémentaires que le microprocesseur pourra exécuter
1. Format des instructions : Les instructions (opération que le processeur doit accomplir) sont
stockées dans la mémoire principale. Chaque instruction est toujours codée sur un nombre
entier d’octets afin de faciliter son décodage par le processeur.
Une instruction est composée de deux champs :
 Le code opération : c’est l’action que le processeur doit accomplir.
 Le code opérande : c’est les paramètres de l’action. Le code opérande dépend de l’opération,
cela peut être une donnée ou bien une adresse d’un emplacement mémoire.
Le code opération Le code opérande

Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées en 4 groupes :

 Transferts de données : de mémoire à registre, de registre à registre, de registre à mémoire.


 Les opérations arithmétiques : addition, soustraction, multiplication et division.
 Les opérations logiques : ET, OU, NON, OU exclusif, …...etc.
 Les opérations de contrôle : branchements inconditionnels ou conditionnels, appel de procédure.

Une instruction sera codée par 1.2.3.ou 4 octets selon le mode d’adressage de la donnée.

2. Le langage machine : est un langage compris par le microprocesseur. Ce langage est


difficile à maîtriser puisque chaque instruction est codée par une séquence propre de bits. Afin
de faciliter la tache du programmeur, on à crée différents langages plus ou moins évolués.
 Le langage assembleur : est l'opération nécessaire pour convertir un programme source en un
programme objet c à d en langage machine compréhensible par le microprocesseur.
 L’assembleur : c’est un programme de traduction qui traite chaque ligne du programme source
pour fournir le code machine. Il détecte les erreurs. Le résultat de son travail s’appelle le programme
objet.
Chaque instruction représente un code machine différent, chaque microprocesseur peut posséder un
assembleur diffèrent.
 Jeu d'instruction : constitue l'ensemble de toutes les mnémoniques existant pour rédiger un
programme source, il constitue donc l’outil indispensable a tout programmeur en assembleur.
Langage de programmation : Chaque instruction en langage de haut niveau correspondra à une
succession d'instructions en langage assembleur, une fois développé, le programme en langage de haut
niveau n'est donc pas compréhensible par le microprocesseur. Il faut le compiler pour le traduire en
assembleur puis l'assembler pour le convertir en code machine compréhensible par le
microprocesseur. Ces opérations sont réalisées à partir de logiciels spécialisés appelés Compilateur
et assembleur.
Langage haut niveau Langage assembleur Langage machine
(if, then, for, write,…) (LDA, ADD,MOV,…) (1101,0011,1010,…)

Compilation Assembleur

Syntaxe du langage assembleur : Chaque ligne d’instruction du programme comporte quatre


parties. Chaque partie est séparée par un blanc (espace).

Etiquette Mnémonique  Opérande Commentaire

A. Etiquette : Ce champ n’est pas obligatoire. C’est un symbole d’au plus 6 caractères
alphanumériques placé en début de ligne, commençant obligatoirement par une lettre de l’alphabet. Le
rôle de l’étiquette est de permettre de repérer la position d’une instruction dans le programme.
B. Mnémonique : C’est une chaine de 3,4 ou 5 caractères désignant une action au microprocesseur.
Ces mnémoniques sont décrites par le constructeur du microprocesseur.
C. Opérande : L’opération est un symbole ou une valeur numérique placée à la suite de la
mnémonique. Le nombre et la taille des opérandes est défini pour chaque mnémoniques et pour le
mode d’adressage nécessaire.
D. Commentaire : Le champ commentaire est délimité par une étoile « * » pour certains
microprocesseur ou par le symbole « % » pour d’autres. Ce champ est réservé au programmeur pour
expliciter son programme et n’engendrent aucun code machine.

Les directives : Pour programmer en assembleur, on doit utiliser, en plus des instructions assembleur,
des directives : Une directive est une information que le programmeur fournit au compilateur. Elle n'est
pas transformée en une instruction en langage machine. Elle n'ajoute donc aucun octet au programme
compilé. Donc les directives sont des déclarations qui vont guider l'assembleur.
* Directive « ORG » (abréviation de « origine ») : Fixe une adresse d’implantation du code généré
du programme.
* Directive « EQU » (abréviation de « équivalent à ») : Permet d’associer un symbole à une
valeur numérique.
* Directive « END » : Directive de fin de programme.

3. Temps d’exécution et performance :


Chaque instruction nécessite un certain nombre de cycle d’horloge pour s’effectuer. Le nombre de
cycle dépend de la complexité de l’instruction et aussi du mode d’adressage. La durée d’un cycle
dépend de la fréquence d’horloge du séquenceur. La durée d’un cycle dépend bien sur de la fréquence
d’horloge de l’ordinateur. Plus l’horloge bat rapidement, plus un cycle est court et plus on exécute un
grand nombre d’instruction par seconde.
On peut caractériser la puissance d’un microprocesseur par le nombre d’instruction qu’il est capable de
traiter par seconde, pour cela, on définit :
* Le CPI (Cycle Par Instruction) : qui représente le nombre moyen de cycles d’horloge nécessaire pour
l’exécution d’une instruction pour un microprocesseur donné.
* Le MIPS (Millions d’Instruction Par Seconde) : qui représente la puissance de traitement du
microprocesseur
MIPS = FH / CPI avec FH en MHZ
Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter la fréquence
d’horloge (limitation matérielle), soit diminuer le CPI (choix d’un jeu d’instruction adapté).

4. Le jeu d'instructions du 6809 :


Une instruction peut être simple : 1 octet ou complexe : 4 octets. La plupart des instructions permettent
un traitement, un déplacement des données se trouvant en mémoire ou dans un registre. L'ensemble des
instructions de base, compris par le Registre d'Instruction, est constitué de quelques 86 instructions. En
tenant compte des variantes (modes d'adressage) il atteint 1464 instructions.

5. Mode d’exécution d'une instruction :


Exécuter une instruction c'est en faite réaliser le cycle : Extraction- Exécution
Extraction : Lecture de la donnée en mémoire, t=1.TE avec TE période de l'horloge E. Il y a autant
d'extractions que d'octets (code opératoire et code opérande) constituant l'instruction. Si m octets alors
t= m.TE.
Exécution : Traduction et interprétation de l'octet (code opératoire) une fois extrait. Un octet donc
t=1.TE. Une période TE supplémentaire est nécessaire pour réaliser concrètement l'opération demandée,
donc la durée totale de l'exécution d'une instruction est :
m.TE +1.TE +1.TE soit (m+2)TE.

6. Classification des instructions : Les instructions sont réparties en groupes déterminés par
leurs caractéristiques.
A. Instructions de traitement des données :
 Instructions arithmétiques :
 addition (ADD, ABX, ADC)
 multiplication (MUL)
 soustraction (SBC, SUB)
 Instructions logiques
 rotation à droite et à gauche (ROL, ROR)
 décalage à droite et à gauche (ASR, LSR et ASL, LSL)
 les fonctions logiques de base (AND, OR, EOR)
 l'incrémentation/décrémentation et complémentation (COM - NEG - NOP -
INC - DEC - CLR)
B. Instruction de transfert de données
 transferts internes entre registres (EXG - TFR)
 transferts externes avec la mémoire (LD - ST)
C. Instructions de tests et de branchements
 instructions de tests sur un bit / un octet (BIT, TST)
 instruction de comparaison (CMP)
 instruction de branchement conditionnel (branchement si)
 les indicateurs du CCR sont actifs
D. Instructions de branchement inconditionnel et de saut
 saut relatif (BRA, BRN : 1 ou 2 octets)
 saut absolu (JMP : 2 octets)
E. Instructions d’appel et de retour de sous-programme
Appel : - saut absolu (JSR) - saut relatif (BSR)
Retour : - RTS : le contenu (PC) sauvegardé dans la pile est restitué dans le registre PC.
F. Instructions opérant sur les pointeurs U, S et X, Y.
 chargement de l'adresse effective (Load effective adress (in register)): LEA.
 empilement des registres dans la pile (PSH)
 dépilement des registres de la pile (PUL)
G. Instructions de traitement des interruptions :
 ET logique avec le registre CCR puis attente d'interruption (CWAI)
 retour d'interruption (RTI)
 interruption logicielle (SWI)

Vous aimerez peut-être aussi