Académique Documents
Professionnel Documents
Culture Documents
VOLUME HORAIRE : 12 H
1
GENERALITES SUR
UN SYSTEME A MICROPROCESSEUR
2. Microprocesseur
2.1 Définition
Le processeur (CPU, pour Central Processing Unit, soit Unité Centrale de
Traitement) est le cerveau de l'ordinateur. Il permet de manipuler des informations
numériques, c'est-à-dire des informations codées sous forme binaire, et d'exécuter les
instructions stockées en mémoire.
2
2.2Composition physique et électrique d'un microprocesseur
• Composition physique
Le microprocesseur, n'est en fin de compte qu'un Morceau de silicium2, dont la taille
va de quelques mm2 à quelques dizaines de mm2.
• Composition électrique
Le microprocesseur est constitué électriquement de millions d'interrupteurs commandés
par des tensions. Ces interrupteurs sont appelés transistors, et leur agencement forme un
ensemble de fonctions logiques élémentaires telles que OÙ, ET, ADD, SUB '.
3. Programmation
Le microprocesseur doit recevoir des instructions pour pouvoir travailler. La suite
ordonnée de ces instructions à la résolution d'un problème s'appelle le programme. Ces
séquences sont dans un premier temps traduites par un organigramme qui est la
représentation par un schéma séquentiel d'un processus.
3
ARCHITECTURE DU MICROPROCESSEUR
Dans la leçon précédente, nous avons vu les différents composants d'un système à
base d'un microprocesseur. Ce dernier est le cerveau d'un ordinateur. Il est constitué de
millions de transistors. Pour pouvoir travailler, Il doit recevoir un programme qui est,
dans un premier temps, sous forme d'un organigramme. Le traitement d'un programme
s'effectue grâce à une organisation interne et externe du microprocesseur.
Dans cette leçon, nous allons étudier les points suivants :
• L'architecture interne ;
• L'architecture externe du µp 6800.
1. Architecture externe
1.1. schéma du microprocesseur 6800
2. Architecture interne
Le microprocesseur 6800 n'est constitué en fait que de deux unités
fonctionnellement séparées :
• U.A.L.: Unité Arithmétique et Logique ;
• U.C.: Unité de Commande ou de contrôle.
2.1. L'UC
2.2. L'UAL
Elle a pour fonction d'effectuer les opérations arithmétiques telles que l'addition, la
soustraction et les opérations logiques telles que les fonctions OÙ, ET, décalage et
rotation.
5
DEROULEMENT D’UNE INSTRUCTION
6
Transparent n° 4 : Décodage de l'instruction et recherche de l'opérande
3. Exécution de l'instruction
Le microprogramme réalisant l'instruction est exécuté ;
Les drapeaux sont positionnés (registre d'état) ;
L'unité de commande positionne le PC pour l'instruction suivante.
7
ADRESSAGE DIRECT, ETENDU ET INHERENT
1. l’adressage direct
On exprime le lieu de l’action par l’expression de l’adresse effective.
Le code opérande (adresse) occupe un octet sans signe et par conséquent évolue
entre 00 et FF.
Intérêt :
Ce mode nécessite moins de place mémoire (1 octet donc taille mémoire réduite) par
conséquent l’exécution de l’instruction est plus rapide.
Exemple :
L'instruction STAA $40 permet de ranger la valeur ACCA=35 dans la case mémoire
d'adresse 40, il suffit de deux octets.
2. l’adressage étendu
Il permet d’adresser toute la mémoire.
Le contenu des deux octets qui suivent immédiatement le code opératoire spécifié
représente l’adresse (16bits) de la donnée.
L’instruction utilisée dans ce type d’adressage doit se traduire par 3 octets.
Exemple :
L'instruction STAA ETE, M Permet le rangement du contenu de l'ACCA dans la
case mémoire dont l’adresse $0200.
8
Transparent n° 7 : Mode d'adressage étendu
3. L’adressage inhérent
Cet adressage est utilisé par les instructions qui agissent seulement sur les registres
internes du microprocesseur. Ici, le code opératoire de l’instruction contient toute
l’information d’adressage nécessaire (adresse source ou/et adresse destination).
Une instruction dans ce mode d’adressage s’écrit sur un seul octet.
Exemple :
L’instruction CLI, d’adressage inhérent permet la mise à zéro de I.
Remarque :
Le M.P.U. possède aussi l’adressage accumulateur.
C’est un mode d’adressage inhérent qui s’applique aux accumulateurs. Il faut
préciser l’accumulateur sur lequel on travail.
9
ADRESSAGE INDEXE, RELATIF ET IMMEDIAT
1. L’adressage indexe
L’adressage indexé utilise le registre index (IX).
L’instruction s’écrit sur 2 octets.
L’adresse effective est obtenue en ajoutant au contenu du registre index le contenu
du 2° octet de l’instruction. Ce 2° octet, s’appelle déplacement (offset).
Ce mode d’adressage est particulièrement adapté au traitement de tableaux de
données : tri, entrée ou sortie, etc.
Exemple :
Ce mode d'adressage est particulièrement adapté au traitement de tableaux de
données.
Supposons que les registres internes contiennent :
ACCA = $ 35
LX = $ 0100
Calcul de déplacement :
$0105
- $0100
= $ 0005 ← déplacement
2. L’adressage relatif
Ce mode d’adressage est utilisé avec les instructions de branchement conditionnel
ou non.
Il spécifie l'adresse effective sous forme d'un déplacement qui est donc ajouté à la
valeur courante du PC pour déterminer l'adresse de poursuite du programme.
L'adresseeffective = (PC ) + 2 + Déplacement
Exemple :
Trouvez l'opérande relatif : XX
10
Transparent n° 9 : Mode d'adressage relatif
Solution :
$3FCC
- $4027
= $FFA5
L'opérande relatif XX est donc: A5
2.1. L’adressage immédiat
La donnée se trouve immédiatement après le code opératoire de l’instruction. Elle
existe sous la forme de 2 ou 3 octets
(Le code opératoire est immédiatement suivi en mémoire de la donnée sur laquelle porte
l’opération)
Nota :
La puissance d’un microprocesseur dépend de ses modes d’adressage.
11
INSTRUCTIONS DE TRANSFERT DE DONNEES
12
3.2 Chargement de SP
LDS charge le contenu de deux cellules mémoires sélectionnées dans le pointeur de
pile "SP".
SPH ← (M)
SPL ← (M + 1)
3.3 Chargement de IX
LDX charge le contenu de deux cellules mémoires sélectionnées dans le registre
d'index.
IXH ← (M)
IXL ← (M + 1)
4 Mettre le contenu SP dans un accumulateur
PUL incrémente le pointeur de pile, puis extrait du sommet de la pile un octet
chargé dans l'accumulateur sélectionné.
Supposons que le pointeur contienne 2AF6 et que la cellule d'adresse 2AF7 contienne CE.
Après exécution de l'instruction :
PUL B
L'accumulateur B contient CE et le pointeur de pile est passé à l'adresse $2AF7.
13
INSTRUCTIONS ARITHMETIQUES
1. Les instructions arithmétiques a deux opérandes
Addition sans retenue (add)
ACC X ← (ACC X) + (M)
Exemple :
Soit le (ACCA)=$24 et le contenu de la case mémoire pointée par l'adresse $43 est
$8B.
Quel sera le contenu de l'ACCA après l'exécution de cette instruction? ADD A $43.
8B 10001011
24 00100100
AF 10101111 = (ACCA)
Le code condition reflète l'état du microprocesseur après l'exécution de chaque
instruction ce qui nous donne :
H I N Z V C
Exemple :
Soit le (ACCA)=$3A
Quel sera le contenu de l'ACCA après l'exécution de cette instruction? ADC A # $7C.
3A → 00111010
7C → 01111100
C → 1
B7 → 10110111
Le code condition sera :
H I N Z V C
14
2. Les instructions arithmétiques a un seul opérande
Mise À zéro d'un octet
CLR remet à zéro l'accumulateur ou la position mémoire spécifiée. L'indicateur de zéro
est mis à 1.
Exemple :
Supposant que l'accumulateur A contienne 3A. Après exécution de l'instruction: NEG A, il
contient C6.
3A = 00111010
Complément à 1 de 3A 11000101
+1 00000001
11000110
Le code condition sera :
N I H Z V C
15
INSTRUCTIONS LOGIQUES
1. Les opérations logiques
1.1. Définition
Les instructions logiques sont des instructions qui permettent de manipuler des
données au niveau des bits.
Exemple :
Soit (ACC A)= E3
Après l'exécution de l'instruction: EOR A # $A0
L'accumulateur A contient 43.
16
Transparent n° 13 : Schéma d'exécution de l'instruction BIT
17
2.3 Les instructions de rotations
2.3.2 Rotation à gauche
ROL provoque une rotation du contenu de l'accumulateur ou de l'adresse mémoire
spécifié, à gauche et de un bit, en passant par le bit de retenu.
18
INSTRUCTIONS DE COMPARAISON
1. Comparaison des accumulateurs a et b
CBA est une instruction qui soustrait le contenu de l'accumulateur B du contenu de
l'accumulateur A. le résultat est perdu, mais il sert à positionner les indicateurs.
(ACC A) - (ACC B)
Exemple :
Supposons que (ACC A)=E3 ET (ACC B)=A0.
Après l'exécution de l'instruction CBA l'accumulateur A contient toujours E3,
l'accumulateur B contient toujours A0, mais le registre d'état a été modifié comme suit:
E3 = 11100011
Complément à 2 de A0 = 01100000
01000011
H I N Z V C
19
Exemple :
Supposons (ACC B)=31, après l'exécution de l'instruction :
TST B.
Les indicateurs de signe, zéro, dépassement et retenue sont à 0.
4. Comparaison de acc a ou b et m
CMP soustrait de l'octet d'un des accumulateurs, A ou B, le contenu de la position
mémoire sélectionnée, et positionne les indicateurs en fonction du résultat obtenu mais
n'altère pas les contenus de l'accumulateur et de la position mémoire.
(ACC X) - (M)
Exemple :
Soit (ACC A)=F6 et le contenu de la case mémoire pointé par l'adresse $43, X est
18.
Après exécution de l'instruction CMP B $43, X.
L'accumulateur B contient F6, la cellule mémoire dont l'adresse est $43, X contient
toujours 18.
20
INSTRUCTIONS BRANCHEMENT CONDITIONNEL
1. Exploitation de l'ndicteur "c"
L'indicateur C est testé lors de l'exécution des instructions de branchement
suivantes: BCC, BCS, BHI, BLS.
bcc : branchement si retenu a "0"
PC ← (PC) + 0002 + Relatif si (C) =0
Remarque :
Le bit de retenue "C" peut être forcé à "0" ou à "1" respectivement par l'exécution
de l'instruction :
CLC : (C) ← 0 ;
SEC : (C) ← 1.
21
Remarque :
Le bit de dépassement "V" peut être forcé à "0" ou à "1" respectivement par
l'exécution de l'instruction :
CLV : (V) ← 0 ;
SEV : (V) ← 1.
22
INSTRUCTIONS DE
BRANCHEMENT INCONDITIONNEL
1. SAUT INCONDITIONNEL
PC ← Adresse numérique
JMP effectue un saut (jump) vers le label spécifié. Un label (ou étiquette) est une
représentation symbolique d’une instruction en mémoire :
2. Branchement inconditionnel
BRA ajoute le contenu du second octet (déplacement) au contenu du compteur
ordinal plus 2 : on obtient ainsi l'adresse de la prochaine instruction à exécuter.
23
Transparent n° 16 : Schéma d'exécution de l'instruction BRA
3. Non opération
NOP est une instruction sur un octet, n'exécute aucune opération, à l'exception
d'incrémenter le compteur ordinal.
Chaque NOP ajoute un temps de deux cycles.
24
INSTRUCTIONS DE SOUS PROGRAMME
1. Branchement à un sous-programme
BSR range l'adresse de l'instruction BSR au sommet de la pile dans la mémoire de
données, à l'adresse indiquée par le pointeur de pile. Puis elle soustrait deux du pointeur de
pile qui adresse alors le nouveau sommet de la pile.
Elle additionne le contenu du second octet de l'instruction au contenu du compteur ordinal
plus deux, et l'exécution se poursuit avec cette nouvelle adresse.
2. Saut à un sous-programme
Exemple :
JSR SUBR
AND #$7F
SUBR ABA
Après exécution de l'instruction JSR, l'adresse de l'instruction AND est sauvegardée
dans la pile; ABA sera la prochaine exécutée.
3. Fin de sous-programme
RTS est l'instruction finale du sous-programme. Elle permet le retour au programme
appelant.
Exemple :
Nom_sous_prog RTS
25