Vous êtes sur la page 1sur 25

SOMMAIRE

MATIERE : SYSTEME MICRO-INFORMATIQUE.

VOLUME HORAIRE : 12 H

1ère LEÇON : Généralités sur un système à microprocesseur.


2ème LEÇON : Architecture du microprocesseur.
3ère LEÇON : Déroulement d’une instruction.
4ème LEÇON : L’adressage direct, étendu et inhérent.
5ème LEÇON : L’adressage indexé, relatif et immédiat.
6ème LEÇON : Les instructions de transfert de données.
7ème LEÇON : Les instructions arithmétiques.
8ème LEÇON : Les instructions logiques.
9ème LEÇON : Les instructions de comparaison.
10ème LEÇON : Les instructions branchement conditionnel.
11ème LEÇON : Les instructions de branchement inconditionnel.
12ème LEÇON : Les instructions de sous programme.

1
GENERALITES SUR
UN SYSTEME A MICROPROCESSEUR

Le microprocesseur (ou Unité Centrale de Traitement) est le cerveau de l'ordinateur.


Il permet de manipuler des informations numériques, demandé par l'homme à travers un
ou plusieurs interfaces. Cet ensemble de composant constituent ce qu'on appelle un
système à microprocesseur. Le fonctionnement de ce dernier exige la programmation du
microprocesseur et éventuellement en respectant certaines règles algorithmiques.
Dans cette première leçon, nous allons voir :
• La description d'un système à microprocesseur ;
• Le microprocesseur ;
• La programmation du microprocesseur.

1. Description d'un système à microprocesseur


Le microprocesseur fonctionne en collaboration avec les éléments suivants :
• La mémoire ;
• Des circuits spécialisés pour les Entrées/Sorties: les interfaces ;
• Il faut aussi des liaisons électriques entre ces trois éléments: les bus ;
• Un élément cadençant le tout, l'horloge (quartz).

D'où le synoptique d'un système à microprocesseur

Transparent n° 1 : Le système minimum développé

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.

Symboles utilisés pour un organigramme :

En règle générale, dans l'écriture d'un programme, on distingue :


• Le programme source écrit par le programmeur ;
• Le programme objet qui est la version traduite et directement exécutable par
le microprocesseur ;
• Le programme exécutable ou binaire qui dépend du M.P.U. et du système
d'exploitation.

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

Transparent n° 2 : Brochage du microprocesseur 6800

1.2. Présentation de différents signaux externes


1.2.1. le bus des données (d0….D1)
Ces huit broches sont bidirectionnelles. Elles permettent la communication avec le
bus des données interne du Microprocesseur.
4
1.2.2. le bus des adresses (a0…..a15)
Ces broches unidirectionnelles transfèrent l'adresse 16 bits fournie par le
microprocesseur au bus d'adresse du système.

1.2.3. le bus de contrôle


Le bus de contrôle fournit en général quatre fonctions :
• La synchronisation pour l’accès aux mémoires ;
• La synchronisation des entrées-sorties ;
• Le contrôle du MPU (interruptions et accès direct mémoire) ;
• Signaux utilitaires comme l’horloge et la remise à zéro (Reset).

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

Elle dirige le fonctionnement du microprocesseur, ses circuits génèrent les signaux


nécessaires à l'exécution de chaque instruction d'un programme.
Cette unité de commande est constituée de :
• Compteur programme (P.C.) ;
• Registre instructions (R.I.) ;
• Registre d'état ;
• Un séquenceur ;
• Un décodeur ;
• Les registres accumulateurs A et B ;
• Registre index « index register IX » ;
• Pointeur de pile « stack pointer SP ».

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

1. Recherche de l'instruction à traiter

Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est


placée sur le bus d'adresses par l'unité de commande qui émet un ordre de lecture ; Au
bout d'un certain temps (temps d'accès à la mémoire), le contenu de la case mémoire
sélectionnée est disponible sur le bus des données ;
L'instruction est stockée dans le registre instruction du processeur.

Transparent n° 3 : Recherche de l'instruction à traiter

2. Décodage de l’instruction et recherche de l'opérande


Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut
être codée sur plusieurs mots. Ce premier mot contient le code opératoire qui définit la
nature de l'opération à effectuer (addition, rotation,...) et le nombre de mots de
l'instruction.
L'unité de commande transforme l'instruction en une suite de commandes
élémentaires nécessaires au traitement de l'instruction ;
Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de
commande récupère sa valeur sur le bus de données ;
L’opérande est stocké dans un registre.

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.

Transparent n° 5 : Exécution de l'instruction

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.

Transparent n° 6 : Exemple du mode d'adressage direct

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

Transparent n° 8 : Mode d'adressage indexé

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)

Transparent n° 10 : Mode d'adressage immédiat

Nota :
La puissance d’un microprocesseur dépend de ses modes d’adressage.

11
INSTRUCTIONS DE TRANSFERT DE DONNEES

1. La mise en mémoire d'une donnée


1.1 . La mise en mémoire du contenu d'un accumulateur

STA place le contenu de l'ACCA dans la mémoire M. le contenu de A reste inchangé.


M ← (ACC X)

1.2. La mise en mémoire du contenu de SP


STS range le contenu de SP dans la mémoire M.
M ← (SPH)
M + 1 ← (SPL)

1.3. La mise en mémoire du contenu de IX


STX place le contenu de X dans la mémoire M. le contenu de X reste inchangé
M ← (IXH)
M + 1 ← (IXL)

2. Mettre le contenu d'un accumulateur dans SP


PSH permet de mettre le contenu de l'ACCA dan la pile µ

Transparent n° 11 : Schéma d'exécution de l'instruction PSH

3. Chargement d'un registre


3.1 Chargement d'un accumulateur
LDA charge l'octet de la cellule mémoire sélectionnée dans l'accumulateur spécifié.
ACC X ← (M)
Supposons que le registre d'index contienne 0800 et que CC=43. Si la cellule
mémoire d'adresse 0843 contient AA, après exécution de l'instruction: LDA A $43, X
L'accumulateur A contient AA.

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.

5. Transfert d'un registre À un registre


5.1 Transfert de acca a dans accb
TAB sert à transférer le contenu de l'accumulateur A dans l'accumulateur B. les
indicateurs de signe et de zéro sont positionnés en fonction de ce qui est transféré;
l'indicateur de dépassement V est mis à 0.
ACC B ← (ACC A)

5.2 Transfert de acca dans cc


TAP transfère les bits 0 à 5 de l'accumulateur A dans le registre de codes de
conditions.
CC ← (ACC A)

5.3 Transfert de sp dans ix


TSX transfère le contenu du pointeur de pile dans le registre d'index et l'incrémente
de 1.
IX ← (SP) + 0001

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

Addition avec retenue (adc)


ACC X ← (ACC X) + (M) + (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

addition de acca et accb dans a (aba)


ACC A ← (ACC A) + (ACC B)
soustraction de acca et accb (sba)
ACC A ← (ACC A) - (ACC B)
soustraction sans retenue (sub)
ACC X ← (ACC X) - (M)
soustraction avec retenue (sbc)
ACC X ← (ACC X) - (M) - (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.

daa : Ajustement décimal sur l'acc a

Transparent n° 12 : Schéma d'exécution de l'instruction DAA

décrémentation d'un octet


DEC décrémente l'accumulateur spécifié (DEC A) ou une position mémoire
sélectionnée (DEC $01A2).

incrémentation d'un octet


INC incrémente l'accumulateur spécifié (INC A) ou une position mémoire
sélectionnée (INC $01A2).

Remplacement d'un octet par son complément vrai


NEG remplace le contenu de l'accumulateur ou de la cellule mémoire spécifiée par
son complément à deux.

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.

1.2. Les instructions de fonctions logiques et logiques (bit à bit)

AND exécute un ET logique entre une position mémoire et l'accumulateur A ou B.

1.2.1. Complémentation a 1 de ACCX ou M

COM complémente un accumulateur spécifié ou le contenu de la cellule mémoire


choisi.

1.2.2 Ou exclusif entre (ACC X) ET (M) (BT a BIT)


EOR procure les modes d'adressages immédiat, direct, indexé et étendu.

Exemple :
Soit (ACC A)= E3
Après l'exécution de l'instruction: EOR A # $A0
L'accumulateur A contient 43.

Le code condition sera:

1.2.3 Ou logique entre (acc x) et (m) (bit a bit)


ORA dispose des mêmes options d'adressages que l'instruction EOR.

1.2.4 Test bit a bit

BIT réalise un ET logique sans modifier ni ACC X, ni M et positionne les bits du


CC en fonction du résultat obtenu.

16
Transparent n° 13 : Schéma d'exécution de l'instruction BIT

2 Les instructions de décalages et de rotations


2.2 Les instructions de décalages
2.2.2 Décalage arithmétique à gauche

Soit (ACC A)=7A l'exécution de l'instruction ASL A


Mettra l'indicateur C à 0, celui de signe à 1, celui de dépassement à 1 celui de résultat à 0
et rangera F4 dans l'accumulateur A.

2.2.3 Décalage arithmétique à droite


ASR est une instruction de décalage qui conserve le bit de signe bien que celui-ci
soit décalé.

2.2.4 Décalage logique vers la droite


LSR exécute un décalage logique à droite, de un bit, du contenu de l'accumulateur
ou de l'octet mémoire spécifié.

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.

2.3.3 Rotation à droite


ROR est l'inverse de ROL.

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

2. Comparaison au contenu de l'index


CPX compare le contenu du registre d'index au contenu de deux cellules mémoires
sélectionnées.
(IXL) - (M + 1)
(IXH) - (M)

Transparent n° 14 : Schéma d'exécution de l'instruction CPX


3. Comparaison de (acc a ou b) ou (m) avec 00
TST positionne les indicateurs de signe et de zéro en fonction du contenu de
l'accumulateur ou de la cellule mémoire spécifiés.
(ACC X)
 (M)  - 00
 

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

bcs : branchement si retenu a "1"


PC ← (PC) + 0002 + Relatif si (C) =1

bhi : branchement si plus grand


PC ← (PC) + 0002 + Relatif si (C) + (Z) =0

bls : branchement si inferieur ou egal


PC ← (PC) + 0002 + Relatif si (C) + (Z) =1

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.

2. Exploitation de l'indicateur "v"


L'indicateur de dépassement "V" (Overflow) est testé lors de l'exécution
d'instruction de branchement suivantes: BVC, BVS, BGE, BGT, BLE, BLT.

BVc : branchement si pas de dépassement de capacité


PC ← (PC) + 0002 + Relatif si (V) =0

BVs : branchement si dépassement de capacité


PC ← (PC) + 0002 + Relatif si (V) =1

Bge : branchement si superieur ou egal a 0 en C.V


PC ← (PC) + 0002 + Relatif si (N) + (V) =0

Bgt : branchement si superieur a 0 en C.V


PC ← (PC) + 0002 + Relatif si (Z) + (N) + (V) =0
Ble : branchement si inferieur ou egal a 0 en C.V
PC ← (PC) + 0002 + Relatif si (Z) + (N) + (V) =1

Blt : branchement si inferieur a 0 en C.V


PC ← (PC) + 0002 + Relatif si (N) + (V) =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.

3. Exploitation de l'indicateur "n"


Cet indicateur est testé lors de l'exécution d'instruction de branchement suivantes:
BPL, BMI, BGE, BGT, BLE, BLT
BMI: branchement si inferieur
PC ← (PC) + 0002 + Relatif si (N) =1

Bpl: branchement si superieur a 0


PC ← (PC) + 0002 + Relatif si (N) =0

4. Exploitation de l'indicateur "z"


Cet indicateur est testé lors de l'exécution d'instruction de branchement suivantes:
BNE, BEQ.

BeQ: branchement si egalite


PC ← (PC) + 0002 + Relatif si (Z) =1

Bne: branchement si non egal a zero


PC ← (PC) + 0002 + Relatif si (Z) =0

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 :

Transparent n° 15 : Schéma d'exécution de l'instruction JMP

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.

Transparent n° 17 : Schéma d'exécution de l'instruction NOP

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.

Transparent n° 18 : Schéma d'exécution de l'instruction BSR

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.

Transparent n° 19 : Schéma d'exécution de l'instruction JSR

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

Vous aimerez peut-être aussi