Vous êtes sur la page 1sur 44

Université Hassan II de Casablanca

Ecole Nationale Supérieure


D’Electricité et de Mécanique
Casablanca

Département : Génie Electrique

Cours Informatique Industrielle


Le microprocesseur 68000 et ses Interfaces
1ière Année Génie Mécanique

Pr. : E. EL BOUATMANI
e.elbouatmani@ensem.ac.ma

Année Universitaire 2022 – 2023


Chapitre 1

Les Systèmes de numération

I
AN
I – Introduction

Soit par exemple un chiffre en Base 10 : 35089, que l’on peut écrire sous la forme :

TM
35089 = 3x10000 + 5x1000 + 0x100 + 8x10 + 9

On a donc alors :





UA
3 à comme poids 4 : d’où la valeur 30000
5 à comme poids 3 : d’où la valeur 5000
0 à comme poids 2 : d’où la valeur 0
8 à comme poids 1 : d’où la valeur 80
 9 à comme poids 0 : d’où la valeur 9
BO
Le principe est d’attribuer un poids, à un chiffre donné, en fonction du rang qu’il occupe dans le
nombre. Si on utilise b chiffres pour écrire un nombre quelconque, on parle alors de base b. En base
b, le chiffre N s’écrit alors :

 N b  C nC n 1C n  2 ......C 1C 0
II - Représentation des nombres
EL

En Résumé, un nombre N est représenté dans un base b comme suit :


.

 Pour b = 10 : on parle de base Décimale ;


Pr

 Pour b = 16 : On parle de base Hexadécimale ;


 Pour b = 8 : On parle de base Octale ;
 Pour b = 2 : On parle de base Binaire ;

Remarque :

 Dans une base b, le nombre b s’écris 10 ;


 Un nombre divisible par la nième puissance de b se termine par n chiffres 0

1
III - Le Système binaire

Dans le système binaire, la base est b = 2. On dispose alors de deux chiffres (0 et 1) pour

I
représenter les nombres dans le système binaire. La représentation binaire est bien adaptée aux
systèmes à base de microprocesseur qui ils ne travaillent qu’avec les nombres binaires 0 et 1.

AN
III.1 - Quelques définitions :

Le Bit (Binary Digit) : C’est élément de base en binaire (Exemple : Le chiffre 0 ou 1) ;

L’Octet (Byte) : C’est un nombre constitué de 8 bits (Exemple : 01110110) ;

TM
Le Mot (Word) : C’est un nombre constitué de 2 octets (Exemple 01101110 01011010) ;

III.2 - Conversion décimale - binaire :

UA
BO

L’écriture en binaire du nombre 157 est :


EL

Exercice :

Donner la représentation en binaire des Nombres suivants :13, 85, 170, 254.
.

IV – Représentation hexadécimale

En Base décimale (base 10), chaque nombre est représenté par une série de 10 chiffres : 0, 1, 2, 3, 4,
Pr

5, 6, 7, 8, 9. En représentation hexadécimale (Base 16), chaque nombre est représenté par une série
de 16 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Avec : A = 10, B = 11, C = 12, D = 13, E = 14, F = 15

V – Écriture simplifier des nombres Binaires

L’écriture des nombres en base 2 est fastidieuse et peu compacte du faite qu’il comporte plusieurs
chiffres 0 et 1. Pour remédier à ce problème, Il est plus commode et pratique d’utiliser soit :

2
 La représentation Octale : Base 8 ;
 La représentation Hexadécimale : Base 16.

I
V.1 - La représentation Octale : Base 8

AN
Les chiffres de la base 8 sont : 0, 1, 2, 3, 4, 5, 6 et 7. La représentation octale permet de regrouper
des séquences de 3 bits binaire en un seul chiffre octal (en commençant par la droite)

Binaire Hexadécimal
0000 0
0001 1

TM
0010 2
0011 3
0100 4
0101 5
0110 6

Exemple :
0111
UA 7

Le nombre Binaire : 0 001 101 010 111 001. Se traduit en : (015271)7 en représentation octale.
BO
C’est la représentation Octale du nombre décimale : 6841

V.2 - La représentation Hexadécimale : Base 16.

Les chiffres de la base 16 sont : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. La représentation


hexadécimale permet de regrouper des séquences de 4 bits binaire en un seul chiffre hexadécimal
(en commençant par la droite)
EL

Binaire Hexadécimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
.

0111 7
1000 8
1001 9
Pr

1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

3
Exemple 1 : Regroupement par 4  hexa : nombre sur 8 bits

I
AN
Exemple 2 : Regroupement par 4  hexa : nombre sur 16 bits

TM
UA
BO
VI – La représentation des nombres signés

Pour les nombres négatifs, le bit de poids fort a un poids de -b :


EL

On a alors : 1

Avec cette représentation on a alors valeurs négatives et 1 valeurs positives et 0.


Il existe trois modes de représentation des nombres signés :

 Représentation par valeur absolue et bit de signe ;


 Représentation en complément à 1 ;
 Représentation en complément à 2 ;
.

VI.1 - Représentation en valeur absolue :


Pr

On ajoute un caractère binaire en plus pour représenter le signe. Le caractère ajouter sera égale à 0
si positif et 1 si négatif

Exemple :

Chiffre 7  0 111

Chiffre -5  1 101

4
VI.2 - Représentation en complément à 1 :

Le complément à un s’obtient en changeant dans le nombre les 1 par 0 et les 0 par 1.

I
Exemple :

AN
Chiffre 9  0 1001

Le complément à 1  1 0110

L’inconvénient : Le chiffre zéro à deux représentation 0000 et 1111 ;

TM
VI.3 - Représentation en complément à 2 :

Le complément à deux s’obtient en ajoutant un 1 logique, au complément à un ;

Exemple :

Chiffre

Le complément à un de
9  0 1001

 1 0110
UA
BO
Ajout de 1 + 1

Complément à 2 1 0111

Signe + Valeur Absolue Complément à 1 Complément à 2


Binaire Hexadécimal Binaire Hexadécimal Binaire Hexadécimal
EL

0111 7 0111 7 0111 7


0110 6 0110 6 0110 6
0101 5 0101 5 0101 5
0100 4 0100 4 0100 4
0011 3 0011 3 0011 3
0010 2 0010 2 0010 2
0001 1 0001 1 0001 1
0000 0 0000 0 0000 0
.

1000 -0 1111 -0 1111 -1


1001 -1 1110 -1 1110 -2
Pr

1010 -2 1101 -2 1101 -3


1011 -3 1100 -3 1100 -4
1100 -4 1011 -4 1011 -5
1101 -5 1010 -5 1010 -6
1110 -6 1001 -6 1001 -7
1111 -7 1000 -7 1000 -8

5
VII – Opérations Arithmétiques usuelles en binaire

Soit deux nombres écris en base 2 :

I
AN
TM
VII.1 - Addition binaire

+ 0 1
0 00 01

VII.2 - Soustraction Binaire


1
UA 01 10

- 0 1
BO
0 00 01
1 11 00

Remarques :

 Au lieu de faire directement M – N, on peut additionner M au complément à 2 de N ;


 Un décalage à droite d’un nombre binaire correspond à une division par deux ;
 Un décalage à gauche d’un nombre binaire correspond à une multiplication par deux ;
EL

VIII – Autres représentations

Le code Ascii pour représenter les caractères alphanumériques.

0 1 2 3 4 5 6 7
0 0 NUL DLE 0 @ P ` p
1 1 SOH DC1 ! 1 A Q a q
2 2 STX DC2 " 2 B R b r
.

3 3 ETX DC3 # 3 C S c s
4 4 EOT DC4 $ 4 D T d t
5 5 ENQ NAK % 5 E U e u
Pr

6 6 ACK SYN & 6 F V f v


7 7 Bell ETB ' 7 G W g w
8 8 BS CAN ( 8 H X h x
9 9 HT EM ) 9 I Y i y
A 10 LF SUB * : J Z j z
B 11 VT ESC + ; K [ k {
C 12 FF FS , < L \ l |
D 13 CR GS - = M ] m }
E 14 SOH RS . > N ^ n ~
F 15 SI US / ? O _ o

Table des codes ASCII

6
IX – Conclusion

 Base binaire :

I
Utilisée comme représentation des nombres dans un ordinateur ;

AN
 Hexadécimal :

Permet de réduire le nombre de chiffres binaires en les regroupement par 4 ;

 Nombres signés :

TM
On utilise la représentation en complément à 2 ;

 Codes ASCII :

UA
Pour la représentation des caractères (simples)
BO
EL
.
Pr

7
Chapitre 2

Généralités sur les mémoires

I
AN
I - Introduction

Une carte à base de microprocesseur est en général constituée de :

TM
 Processeur : Cerveau de la carte
 Mémoire : Stockage des données
 Circuits d’entrées-sorties : Dialogue avec l’extérieur



Bus d’adresse
Bus de données
UA
Ces composants sont interconnectés entre eux par un ensemble de fils qui s’appellent des bus :

: Choix de l’emplacement mémoire


: Envoi ou réception de la donnée
 Bus de contrôle : Ordres à exécuter par les composants (Lecture, Écriture,
BO
Interruptions, etc.)
EL

II – Les types de mémoires


.

Sur le marché des composants, on peut distinguer trois types de mémoires :

 Les mémoires ROMs : Mémoires non volatiles à lecture seule, elles sont programmées par
Pr

le constructeur et contiennent en générale le Moniteur (ou le BIOS) ;


 Les mémoires RAMs : Mémoires volatiles à lecture et écriture. Elles sont utilisées pour le
stockage des données ;
 Les Mémoires EPROMs : Sont des mémoires ROMs mais que l’on peut programmer en
utilisant des programmateurs d’EPROMs. Les mémoires EPROMs sont effaçable par les
rayons UV ;

1
Pour les mémoires vives ou bien RAMs, on distingue deux catégories :

 Mémoires RAMs statiques (SRAM) : Le contenu n’est pas perdu que si l’alimentation est

I
coupée ;
 Mémoire dynamiques (DRAM) : Qui ont besoin d’un circuit qui permet le
rafraîchissement de la donnée pour éviter sa perte ;

AN
Pour les mémoires mortes (ROMs ou EPROMs), on distingue les composants suivant :

 ROM Read Only Memory


 PROM Programmable ROM

TM
 EPROM Erasable Programmable ROM
 EEPROM Electrically Erasable Programmable ROM

Le contenu des mémoires mortes n’est pas perdu lorsque l’alimentation est coupée.

III – Structure externe d’une mémoire


UA
Le brochage d’une mémoire RAMs de taille (n x 8 bits)
BO
EL

Le nombre n dans A0 – An, dépond la taille de la RAM. Pour n=10, la Taille de la mémoire est de
2 Ko.

Le brochage d’une mémoires EPROMs de taille (n x 8 bits)


.
Pr

En mode lecture Vpp = 5 Volts et en mode programmation Vpp = (12V, 21V, 24V).

2
IV – Organisation interne d’une mémoire

Adresse Hexadécimale Adresse Binaire Exemple de contenu

I
000 0000 0000 0000 0110 1101
001 0000 0000 0001 0100 0101
002 0000 0000 0010 0010 1111

AN
003 0000 0000 0011 1101 0101
004 0000 0000 0100 0110 1001
………………… …………………
7FB 0111 1111 1011 1010 1101
7FC 0111 1111 1100 0011 1000

TM
7FD 0111 1111 1101 1100 0101
7FE 0111 1111 1110 1010 1001
7FF 0111 1111 1111 0111 1010

= ′

UA ∗ é

Par exemple le calcul de la taille d’une mémoire ayant 8 bits de données et 11 bits d’adresse est
comme suit :
BO
Taille : 2nombre bits adresse * nombre bits données ;

 Taille en bits :
o Taille = 211 x 8 bits = 2048 x 8 = 16384 bits ;
 Taille en Octets
o Taille = 211 x 1 octet = 2048 octets ;
 Taille en kilo octets
o Sachant que 1 Ko = 210 = 1024 Octets ;
EL

o Taille = 2 x 210 x 1 octet = 2 Ko ;

V – Chronogramme de lecture/Ecriture d’une mémoire

V.1 – Lecture d’une mémoire RAM ou EPROM

Les opérations à effectuer pour la lecture d’une mémoire RAM ou EPROM sont :
.

1. Présenter l’adresse de la case sur le bus d’adresse ;


2. Donner l’ordre de lecture /RD = 0 (/WR=1)
3. La donnée à lire sera transférer depuis le bus de donnée de la mémoire vers celui du
Pr

microprocesseur ;

3
V.2 – Ecriture d’une mémoire RAM

Les opérations à effectuer pour écrire sur une mémoire RAM sont :

I
1. Présenter l’adresse de la case sur le bus d’adresse ;
2. Présenter la donnée à écrire sur le bus de données ;

AN
3. Donner l’ordre d’écriture /WR = 0 (/RD=1).

VI - Conclusion

Mémoire RAM :

TM
 Composant utilisé par le microprocesseur pour le stockage de données du programme en
cours d’exécution ;
 Elle est aussi utilisée comme Pile (Stack pointer) ;

Mémoire ROM ou EPROM :


UA
Contient le programme qui permet de gérer la carte à microprocesseur : Le moniteur ;

Taille de la mémoire :
BO
 Elle est déterminée par le nombre de ligne de son bus d’adresse ;
 Elle est calculée soit en Bits, ou en Octets ou bien en Kilo Octets : Ko (1 Octets = 8 Bits et
1 Ko = 1024 Octets) ;

D’autres circuits sont utilisés dans les cartes à base de microprocesseurs :

 Les circuits buffers pour la protection et l’amplification de courants ;


EL

 Les buffers sont relier au bus de données si plusieurs circuits lui sont connecter
 Les circuits Latchs pour séparer le bus d’adresses et de données s’ils sont multiplexer ;
 Les circuits décodeurs d’adresses pour choisir parmi les mémoires utilisées par le
microprocesseur ;
.
Pr

4
Pr
.
EL

5
BO
UA
TM
AN
I
Chapitre 3

Généralités sur les Microprocesseurs

I
AN
I – Introduction

Le microprocesseur est le composant principal de tout ordinateur. C’est lui qui se charge de toutes

TM
les opérations de traitement et de calcul en collaboration avec les autres circuits (Mémoires et
périphériques).

UA
BO
Ordinateur personnel Carte mère
EL
.

II – Structure d’un système à microprocesseur


Pr

Une carte à base de microprocesseur est constituée principalement de trois composantes :

 Microprocesseur
 Mémoires RAM et EPROM ou ROM
 Interfaces d’entrées sorties

Ces trois constituants sont reliés entre eux par un ensemble de connexion appelé Bus de données,
Bus d’adresses et Bus de control.

1
I
AN
TM
III – Structure Interne d’un Microprocesseur

Pour bien comprendre le fonctionnement d’un microprocesseur, nous allons devoir étudier son
architecture interne pour comprendre sa constitution interne et son fonctionnement.

UA
BO
EL

D’après ce schéma, un microprocesseur est construit autour de :

 Unité de traitement ou Unité Arithmétique et Logique (UAL) : C’est l’organe de calcul du


Microprocesseur ;
 Unité de commande ou de control : Permet d’organiser l’exécution d’un programme ;
 Un ensemble de Registres internes : Permettant le stockage des données de l’UAL ;
.

Ces trois éléments sont reliés entre eux par un bus interne permettant les échanges d’informations.

III.1 – Unité de Commande - UC


Pr

Le travail de l’Unité de Commande (UC) est :

 Effectue la recherche des codes opérations des instructions dans la mémoire ;


 Assurer le décodage des instructions avant leurs exécution : Car les instructions sont codées
en codage binaire ;
 Organise le déroulement de l’exécution des instructions d’un programme ;
 Prépare l’exécution de l'instruction suivante ;

2
L’Unité de Commande (UC) est constituée des éléments suivant :

 Compteur de Programme (PC) : C’est un registre qui est initialisé avec l'adresse de

I
l’instruction qui va être exécuté ;
 Registre d’instruction et Décodeur d’instruction : L’instruction qui va être exécuter est
d’abord rangée dans ce registre, puis elle est décodée en util isant le décodeur d’instruction ;

AN
 Bloc de logique de commande : Il organise l'exécution des instructions au rythme d’une
horloge : Séquenceur ;

III.2 – Unité de Traitement

TM
L’Unité de traitement est composée de :

 L’Unité Arithmétique et Logique (UAL) : C’est un circuit qui réalise les opérations
arithmétiques (ADD, SUB, MUL, DIV) ou logiques (ET, OU, Décalage, Rotation) ;
 Le registre d’état (Flags) : Les bits du registre d’état sont appelés des indicateurs d’état ou

UA
Flags ou encore Drapeaux. Ces bits nous donnent l’état d’exécution d’une opération
Arithmétique ou Logique : Compte rendu ;

III.3 – Les Registres internes du Microprocesseur

Les registres interne du microprocesseur sont utilisés pour :


BO
 Le stockage de données ;
 Le transfert de données avec la mémoire ;
 Dans les opérations arithmétique et logique :

Ces registres internes ont chacun une fonction particulière selon sa nature, on a donc :
EL

 Accumulateur :
o C’est le Registre principale de certains Microprocesseurs 8 bits ;
o Il est utilisé par l’UAL dans toutes les opérations arithmétiques et logiques ;
o Il existe dans les processeurs comme : 8085, 8086, de Intel et 6800, 6809 de
Motorola ;
 Registres Généraux :
o En plus de l’Accumulateur, certains processeurs possèdent d’autres registres qui sont
nommés : Registres de travaille ou Registres Généraux ;
.

o Ce sont des registres qui ont le même rôle que l’accumulateur : Stockage de données
et calcul arithmétique et logique ;
 Registres d’adresses :
Pr

o C’est l’interface entre le bus interne du microprocesseur et le bus d’adresse externe ;


o On les utilise pour la lecture et l’écriture de données en mémoires RAMs ;
o Ce sont des registre qui permettent de pointer les données en mémoires ;
 Registre d’état ou Status Register : Il contient l’état d’une opération de calcul. Les
principaux bits du registre d’état sont :
o Bit S : égal à 1 si opération négative et à 0 si elle est positive ;
o Bit Z : égal à 1 si le résultat est nul ;
o Bit C : égal à 1 si il y a une retenue de calcul ;
o Bit V : égal à 1 si le résultat dépasse la taille des registres généraux ;

3
 Pointeur de Pile (SP) :

I
o La pile c’est une zone mémoire (RAM) utilisée pour le stockage de données lors
d’appel de procédures et interruptions ;

AN
o Pour utiliser la pile, le microprocesseur dispose d’un registre nommé : Pointeur de
Pile ou Stack Pointer (SP ) ;
o Le SP est initialisé au début par l’adresse du sommet de la pile ;
 Compteur programme (PC) :
o Appelé aussi Program Counter (PC) ou encore Compteur Ordinal (CO) ;
o Permet de pointer l’instruction à exécuter par l’UAL (pointe le début de l’EPROM) ;

TM
o Lorsque le microprocesseur exécute une instruction, le PC contient l’adresse de
l’instruction suivante ;

IV – Définition de la Pile

Il existe deux types de pile :


UA
La pile FIFO (First In First Out) : Dernier entré dernier sortie ;
BO
 La pile LIFO (Last In First Out) : Premier entré dernier sortie ou (FILO) ;
EL

Soit une zone de la mémoire utiliser comme pile : de taille 2n cases mémoires
.
Pr

4
Exemple 1 : Soit une Pile de taille 7 cases mémoires de 16 bits

I
AN
TM
Le pointeur de pile SP pointe le sommet de la pile.

UA
Exemple 2 : Etat de la pile après sauvegarde de 4 données de 16 bits
BO
EL

Le pointeur de pile SP pointe une case de libre. Après la restitution des 4 données de la pile, on
revient à la situation de l’exemple 1.

IV – Structure externe du microprocesseur

IV.1 – Notion de Bus


.

Le Microprocesseur échange les données avec les mémoires et les interfaces d’E/S au moyen d’un
ensemble de connexions appelés bus. Le bus transporte des informations sous forme parallèle (fait
Pr

circuler n bits en même temps). Selon la taille des données binaires échangées avec la mémoire, les
circuits d’Entrées/Sorties et le microprocesseur, on peut distinguer : Le Microprocesseur 8 bits, 16
bits ou 32 bits, etc.

5
Le bus du microprocesseur peut être décomposé en trois bus distincts :

 Le bus d’adresse : Spécifie l’adresse de la case mémoire à lire ou à écrire par le

I
microprocesseur ;
 Le bus de données : Permet le transfert de données entre le microprocesseur et la mémoire
ou les circuits d’Entrées/Sorties ;

AN
 Le bus de commande : Transmet les ordres de lecture et d’écriture à la mémoire et aux E/S ;

IV.2 Brochage d’un microprocesseur (cas 8 bits)

TM
UA
BO
V – Exemple de Programme Assembleur

Quelques définitions relatifs à la programmation en assembleur :


EL
.
Pr

6
VI - Conclusion

Le microprocesseur est composé de :

I
 Une Unité Arithmétique et logique, pour le traitement et l’exécution des opérations ;
Une Unité de Control qui gère les autres partie du processeur ;

AN

 Un ensemble de Registres de Travail et de pointeurs de données en mémoire ;
 Un Registre d’État pour les opérations de tests et de branchements ;
 Un Pointeur d’Instruction ;

TM
UA
BO
EL
.
Pr

7
Chapitre 4

Le Microprocesseur 68000

I
Architecture Interne et externe

AN
I - Introduction

TM
Le MC68000 est un microprocesseur de la famille MOTOROLA comme : 6502, 6800, 6809 : (Ses
prédécesseurs). Son Bus de données est de 16 bits (D0 à D15) : C’est un microprocesseur 16 bits.
Son Bus d’adresses est de 23 bits (A1 à A23) : Sa capacité d’adressage est de 16 Mo de mémoires
(RAMs et EPROMs) ;


UA
Le microprocesseur MC68000 dispose d’un jeu d’instructions riche qui permet :

Gérer des structures de données complexes ;


 Traiter des variables, tableaux, etc ;
BO
IL possède deux niveaux d’utilisation : mode utilisateur et mode superviseur. Il permet de gérer des
interruptions logicielles et matérielles, avec niveaux de priorités.

II – Brochage du 68000

Le brochage du microprocesseur MC68000 est données par


EL
.
Pr

1
Les principaux signaux du microprocesseur MC68000 sont :

 A1 - A23 : Bus d’adresse sur 23 bits

I
 D0 – D15 : Bus de données sur 16 bits (2 octets)
 R_/W (Read/Write) : Lecture si = 1, Ecriture si = 0

AN
 /LDS (Lower Data Strobe) : Validation de la données sur le bus de données D0 ... D7
 /UDS (Uper Data Strobe) : Validation de la données sur le bus de données D8 ... D15
 FC2, FC1, FC0 (Codes Fonctions) : Donnent l’état interne du microprocesseur ;
 /IPL0, /IPL1, /IPL2 : Entrée d’interruptions sur 23 bits

II.1 - État interne du microprocesseur

TM
FC2 FC1 FC0 Etat
0 0 0 Réservé
0 0 1 Données Utilisateur
0 1 0 Programme Utilisateur
0
1
1
1
1
0
0
1
1
0
1
0
UA
Réservé
Réservé
Données Superviseur
Programme superviseur
1 1 1 Reconnaissance d’interruption
BO
II.2 - Signaux d’interruptions

Les demandes d’interruptions arrivent sur les broches «/IPL0, /ILP1, /ILP2», et sont codées en
logique négative. Le niveau 0 correspond donc à aucune demande d'interruption.

Le microprocesseur 68000 peut accueillir au maximum 7 demandes d’interruptions différentes. Le


codage de ces niveaux d’interruptions est :
EL

/IPL2 /IPL1 /IPL0


1 1 1 Niveau 0, Pas d’Interruption
1 1 0 Niveau 1
1 0 1 ---
1 0 0 ---
0 1 1 ---
0 1 0 ---
.

0 0 1 Niveau 6
0 0 0 Niveau 7 – NMI
Pr

III - Organisation mémoire du microprocesseur MC68000

La mémoire du microprocesseur, est un ensemble de boîtiers connectés au bus de données. Selon la


nature du microprocesseur On aura 3 configurations :

 Pour les microprocesseurs 8 bits, la mémoire est une succession de cases 8 bits dont les
adresses sont successives (N, N+1, N+2, …) ;

2
 Pour les microprocesseurs 16 bits, la mémoire est organisée en cases de 16 bits, dont les
adresses sont incrémentées par pas de 2 (N, N+2, N+4, N+6, …) ;
Pour les microprocesseurs 32 bits, la mémoire est organisée en cases de 4 octets, dont les

I

adresses sont incrémentées par pas de 4 (N, N+4, N+8, N+12, …) ;

AN
TM
UA
Pour le cas du 68000, les mémoires sont connectées à travers le bus de données D0 – D5. Pour le
cas des mémoires organisées en 8 bits, l’une sera connectée à D0 – D7 et l’autre à D8 – D15. Dans
ce cas l’accès se fait selon la nature des données (8 ou 16 bits) :

 Si /UDS=0 seul Alors on aura la sélection d’une adresse paire sur D8 – D15 ;
BO
 Si /LDS=0 seul Alors on aura la sélection d’une adresse impaire sur D0 – D7 ;
 SI /UDS=0 et /LDS=0 Alors la sélection d’un doublet (Mot d’adresse paire) sur D0 – D15 ;
EL

L’unité d’adressage sur le 68000 est l’octet : C’est la plus petite quantité que l’on peut lire ou écrire
.

dans une mémoire de type 8 bits. Les octets sont placés en mémoire les uns après les autres en
adresses croissantes.
Pr

3
I
AN
TM
Un mot c’est deux octets successifs : L’adresse d’un mot est celle de l’octet poids forts : (les bits 8 à



UA
15). Un mot est toujours à une adresse paire 2p :

Les bits de poids D8 à D15 sont à l’adresse 2p ;


Les bits de poids D0 à D7 sont à l’adresse 2p + 1 ;
BO
EL

 Les Octets paires (Octets 0, 2, 4, 6, …) correspondent aux octets poids forts du bus de
.

données : Ils sont reliés à D8 – D15 du bus de données du microprocesseur ;


 Les octets impaires (Octets 1, 3, 5, 7 …) correspondent aux octets poids faible sur le bus de
données : Ils sont reliés à D0 – D7 du bus de données du microprocesseur ;
Pr

4
IV – Câblage de la mémoire avec 68000 : Utilisation de UDS et LDS

La génération des signaux /LDS et /UDS par le microprocesseur se fait donc selon le schéma

I
suivant :

AN
TM
 Accès à un octet d’adresse paire :
o Exemple : Move.B ($0100), D0 ;
UA
Dans l’accès aux données stockées en mémoire, on peut avoir trois configurations d’accès :

o Adresse paire donc A0 = 0 ;


BO
o Octet paire donc /UDS = 0 et /LDS = 1 ;
 Accès à un octet d’adresse impaire ;
o Exemple : Move.B ($0201), D0 ;
o Adresse impaire donc A0 = 1 ;
o Octet impaire donc /LDS = 0 et /UDS = 1 ;
 Accès à un mot de 16 bits d’adresse paire ;
o Exemple : Move.W ($0300), D0 ;
EL

o Adresse paire donc A0 = 0 ;


o Mot paire donc /UDS = 0 et /LDS = 0 ;
.
Pr

5
Le câblage des mémoires avec le microprocesseur est données selon le principe du schéma ci-
dessous :

I
AN
TM
reliées au bus de données D8 – D15 ; UA
Le Signal /UDS intervient avec le décodeur d’adresse dans la sélection des mémoires paires : celles

Le Signal /LDS intervient avec le décodeur d’adresse dans la sélection des mémoires impaires :
celles reliées au bus de données D0 – D7 ;
BO
V – Les registres interne du microprocesseur 68000

Le microprocesseur MC68000, dispose des registres internes suivants :

 8 registres de données de 32 bits, nommés : D0, D1, D2, … , D7 ;


EL

o Chacun de ces registres est accessible en un octet (.B), en deux octets ( .W) ou quatre
octets (.L) ;
.

 8 registres d’adresses de 32 bits, nommés : A0, A1, A2, … , A7 ;


Pr

6
o Chacun de ces registres est accessible en deux octets ( .W) ou quatre octets (.L).
L’accès en un octet étant interdite ;
o Pour l’accès en (.W), le bit de signe est transcris sur les bits 16 jusqu’à 32 de ces

I
registres ;
 Un registre Compteur Programme de 32 bits, nommé : PC ;

AN
 Un registre d’état de 16 bits, nommé : SR (Status Register) en Mode superviseur et CCR
(Code Condition Register) en mode utilisateur ;

TM
V.1 – Les registres de données D0 - D7
UA
Le 68000 dispose de 8 registres de données D0 à D7 de 32 bits chacun (à ne pas confondre avec bus
de données D0 –D15) :
BO
 Ces registres contiennent les données manipulées par les instructions du 68000 ;
 Ils peuvent être utilisés comme :
o Des octets (8 bits de large) : Notation Dn.B ;
o Des mots (16 bits de large) : Notation Dn.W ;
o Des mots longs (32 bits) : Notation Dn.L ;

V.2 – Les registres d’adresses A0 - A7


EL

Le 68000 dispose de 8 registres d’adresses A0 à A7 de 32 bits chacun (à ne pas confondre avec bus
d’adresses A1 – A23) :

 Ces registres contiennent les adresses mémoires manipulées par les instructions du 68000 ;
 Les registre A7 joue le rôle de :
o Pointeur de pile utilisateur (SP ou USP) : A7 ;
o Pointeur de pile système (SSP) : A7’ ;
Ils peuvent être utilisés comme :
.


o Des mots (16 bits de large) : Notation An.W ;
o Des mots longs (32 bits de large) : Notation An.L ;
Pr

 Lorsqu’ils sont utilisés comme des mots (16 bits) il y a toujours extension à 32 bits du bit de
signe (arithmétique signée) ;

V.3 – Le pointeur de pile

La pile est une zone de la mémoire RAM où le microprocesseur sauvegarde des données internes
telles que :

 Registres de travail (D0 – D7 et A0 – A6) pour utiliser ces mêmes registres une autre fois

7
sans écraser leurs contenus ;
 Le program Counter PC lors d’appels de sous programmes et d’interruptions, pour
mémoriser de l’adresse de retour ;

I
 Le registre d’état et les flags pour utiliser ce même registre dans la procédure ;

Pour utiliser cette pile le microprocesseur dispose d’un registre nommé : Pointeur de Pile ou Stack

AN
Pointer (SP qui est le registre A7 pour 68000) :

 Le SP est un registre pointeur qui pointe les données dans la pile ;


 Le SP est initialisé au début par l’adresse du sommet de la pile ;
 L’écriture dans la pile décrémente le SP et la lecture de la pile incrémente le SP ;

TM
V.4 – Les registres d’état SR et CCR

Le registre d’état est schématisé par :

UA
 Un registre d’état (SR) contenant le CCR dans son octet poids faible est accessible ainsi que
BO
les drapeaux supplémentaires du poids fort :
o Le drapeau S est le mode du processeur : Utilisateur ou superviseur ;
o Les codes I0, I1 et I2 déterminent le niveau de priorité des interruptions ;
o Les codes T0 et T1 contrôlent le mode d’exécution pas à pas ;
 Le registre CCR est affecté selon le résultat des instructions (Arithmétique ou logique) ;
 Les drapeaux (C, V, Z, N et X) sont affectés différemment selon les instructions (voir jeux
d’instructions) :
o C : Est la retenue des opérations arithmétiques ;
EL

o V : Indique un débordement ;
o Z : Indique que le résultat de l’opération est nul ;
o N : Indique un résultat négatif pour l’opération ;
o X : Est la retenue étendue, il n’est affecté que par certaines instructions ;

V.5 – Le registre Compteur programme : PC


.

C’est un registre qui est utilisé par l’unité arithmétique et logique pour la recherche des codes
opérations en mémoire :
Pr

 L’adresse de la prochaine instruction est contenue dans un registre de 32 bits : Le compteur


Ordinal (PC) ;
 Comme les instructions sont lues en mémoire mot par mot, le PC contient toujours une
adresse paire ;
 Le premier mot d’une instruction est le code d’opération (Opcode ou codeop) et détermine
entre autre la longueur de l’instruction ;
 Les autres mots de l’instruction constituent le code qui identifie les opérandes ;

8
VI - Format d'une instruction et types des opérandes

VI.1 – Format d’une instruction

I
Uns instruction Assembleur 68000 est sous la forme :

AN
TM
VI.2 – Types d’opérandes

Selon la taille spécifiée dans l’instruction (.B, .W ou .L), les opérandes intervenant dans
l’instruction sont utilisées sur :

 Registre de données sur 8 bits


UA
BO

 Registre de données sur 16 bits


EL

 Registre de données sur 32 bits

Si la destination est un registre d'adresse (A0 – A7), le bit 15 est recopié sur les bits 16 à 31 en
.

accès 16 bits (.W):


Pr

Registre d’adresse sur 16 bits

9
Registre d’adresse sur 32 bits

I
AN
VII - Conclusion

Le 68000 est constituer de :

 Bus de données sur 16 bits : D0 à D15 ;

TM
 Bus d’adresse sur 24 bits A1 à A23 ;
 Les bits /LDS et /UDS pour sélectionner la partie du bus de données à utiliser (A0);
 Huit registres de données D0 – D7 de 32 bits ;
 Huit registres pointeurs A0 – A7 de 32 bits
 Le registre pointeur A7 est utilisé comme pointeur de pile SP (Utilisateur/système) ;

UA
BO
EL
.
Pr

10
Chapitre 5

Les Modes d’adressages

I
AN
I – Introduction

Tout programme en Assembleur est décrit par une suite d'instructions permettant de réaliser :

TM
 Transfert de données : avec la mémoire ou les registres interne du microprocesseur ;
 Opérations Arithmétiques et Logiques
o Addition, Soustraction, Multiplication, division ;
o ET, OU, NON, XOR, NAND, NOR etc ;


Branchement
UA
o Conditionnels : si <condition> alors aller à label 1
o Inconditionnels : aller à label 2
Appel de sous programme ;
BO
II – Format d’une instruction

L’assembleur, comme tout autre langage de programmation, obéit à des règles de syntaxe pour
l’écriture du programme. Une instruction en assembleur 68000 est composée de 5 champs :

Étiquette Mnémonique.format Opérande source, Opérande destination Commentaires

Étiquette : Facultative, permet de repérer une instruction dans un programme ;


EL

 Les étiquettes sont utilisées par :


o Les instructions de branchement : BRA, BNE, BEQ, …
o Les instructions d’appel de procédures : BSR, JSR

Exemple : Somme des 10 premiers octets ;

MOVE.B #$00, D0
.

MOVE.B #$00, D1
Etiq1 ADD.B D1, D0
Pr

ADD.B #$01, D1
CMP.B #$0A, D1
BNE etiq1

Mnémonique : C’est le nom de l'instruction

Format : Taille des données manipulées :

1
 Les Formats utilisés sont :
o .B Byte ou bien Octet : données sur 8 bits ;
o .W Word ou bien Mot : données sur 16 bits ;

I
o .L Long word ou bien Mot long : données sur 32 bits ;
 Si on ne spécifie rien dans format, l’assembleur utilise par défaut le format : .W : Données
sur 16 bits

AN
Opérande Source : Donnée de départ ;

 Peut être : Constante, Registre ou Mémoire ;

TM
Opérande Destination : Emplacement d'arrivée ;

 Peut être : Registre ou Mémoire ;

Commentaires : Permettent d’ajouter des explications au programme : (Archivage final) ;

Quelques exemples d’instruction :

 MOVE.B #$27 , D0 ; D0 = $26


UA
o # : spécifie une donnée en Immédiat (une constante) ;
o $ : spécifie une valeur en hexadécimal ;
BO
 ADD.W D5 , D6 ; D6 = D5 + D6
 SUB.B ($1000), D1 ; D1 = D1 – ($1000)
 Label1 SUB.B #$1 , D1 ; Décrémenter D1

………………….

BRA Label1 ; Aller au Label1


EL

III – Les Modes d’adressages

Pour accéder aux données à traiter par le microprocesseur, on utilise les opérandes des instructions :

 Opérande source ;
 Opérande destination ;
.

Les modes d'adressages décrivent la manière utiliser par le microprocesseur pour accéder à ces
données.
Pr

III.1 – Exemple de quelques Instruction

Supposons que le registre de données D0 est initialisé comme suit : D0 = $11111111. Quel serait la
valeur du registre D0 après l’exécution des instructions suivantes :

2
 MOVE.B #$12,D0

I
AN
 MOVE.W #$1234,D0

TM
 MOVE.L #$12345678,D0

UA
BO
Supposons que le registre d’adresses A0 est initialisé comme suit : A0 = $33333333. Quel serait la
valeur du registre A0 après l’exécution des instructions suivantes :

 MOVE.W #$1234,A0
EL

 MOVE.W #$8765,A0
.
Pr

 MOVE.L #$12345678,A0

3
III.2 – Mode d’adressage Immédiat

L’un des opérandes est une donnée (constante), qui fait partie du programme.

I
AN
TM
UA
BO
III.3 – Mode d’adressage direct ou Absolu (Long)

L’un des opérandes est une adresse mémoire (donnée directement dans le programme).
EL
.
Pr

4
III.4 – Mode d’adressage direct ou Absolu (Court)

L’un des opérandes est une adresse mémoire (donnée directement dans le programme).

I
AN
TM
UA
BO
III.5 – Mode d’adressage Indirect ou indéxé

L’un des opérandes est une adresse mémoire donnée par l’un des registres d’adresses A0 à A6.
EL
.
Pr

5
III.6 – Mode d’adressage Indirect avec Déplacement

L’un des opérandes est une adresse mémoire donnée par l’un des registres d’adresses A0 à A6,

I
auquel est ajouté un déplacement.

AN
TM
UA
BO
III.7 – Mode d’adressage Indirect post-incrémenté

L’opérande est une adresse se trouvant dans l’un des registres pointeurs A0 à A6. Une fois
l’instruction exécutée, le registre pointeur va être incrémenté de +1 (.B) ou +2 (.W).
EL
.
Pr

6
III.7 – Mode d’adressage Indirect pré-décrémenté

Même définition sauf qu’ici le registre pointeur est d’abord décrémenté de +1 (.B) ou de +2 (.W),

I
ensuite l’instruction sera exécutée.

AN
TM
UA
III.9 – Autres Mode d’adressage
BO
 Adressage Registre
o L’un des opérandes est un registre
o MOVE.B D1, $1000
o NOT D0
 Adressage Implicit
o Aucun registre n'est spécifié
o RTS
EL

o NOP

IV - Conclusion

Les principaux modes d’adressages sont :

 Adressage Immédiat :
o La donnée fait partie du programme ;
.

 Adressage direct :
o La donnée est une adresse mémoire connu est spécifiée dans le programme ;
Pr

 Adressage Indirect (indexé) :


o L’adresse de l’opérande est spécifiée dans l’un registre d’adresse A0, A1, …, A6

7
Chapitre 6

L’interface parallèle PIA 6821

I
AN
I – Introduction

L’interface parallèle PIA 6821 est un circuit permettant d’interfacer les microprocesseurs de type

TM
Motorola : (6502, 6800, 6809, 68000, etc.) avec le milieu extérieur (Boutons poussoirs, Afficheurs,
Leds, etc.). Le PIA 6821 se caractérise par :

 Il possède Deux Ports parallèles (Port A et Port B) de 8 bits chacun et programmables en


entrées et/ou en sortie ;

UA
 La programmation de ces deux Ports se fait en mettant tout simplement à « 1 » ou à « 0 » les
bits du registre de direction de données DDRA pour le port A ou DDRB pour le port B ;

II – Brochage du PIA 6821

Le brochage du PIA 6821 est comme suit :


BO
EL
.
Pr

Avec :

 D0 – D7 : Bus de données sur 8 bits, permettant de transporter les données lues et celles
écrites sur le 6821 ;

 RS0, RS1 : Bus d’adresses sur 2 bits (A0 pour RS0 et A1 pour RS1), ce bus d’adresses
permet de sélectionner les registres internes du PIA 6821 ;

1
 Ports A, B : Deux ports parallèles de 8 bits chacun, configurables en entrées ou en sorties ;

 R/W : Signal de lecture (quand c’est égale à 1) ou d’écriture (quand c’est égale à 0) de la

I
donnée sur le PIA 6821 ;

 CA1, CB1 : Lignes d’entrées d’interruption des ports A et B : sont configurés en entrées ;

AN
 CA2, CB2 : Lignes programmables soit en entrée d’interruption ou en sortie normale ;

 IRQA, IRQB : Lignes (en sortie) pour demander une interruption au microprocesseur ;

 IRQA : Interruption associée au port A ;

TM
 IRQB : Interruption associée au port B ;

 CS0, CS1, /CS2 : Broches de sélection du boîtier 6821 ;

III – Câblage du PIA avec le microprocesseur


UA
Le câblage du PIA 6821 avec le microprocesseur se fait de la même manière que celui des
mémoires RAMs et EPROMs. On définie donc deux méthodes de liaisons.
BO
La sélection du PIA se fait par ces trois entrées de sélection : CS0, CS1 et /CS2. Les deux signaux
/LDS (Lower Data Strobe : sélection de la donnée sur D – D7) et UDS (Uper Data Strobe : sélection
de la donnée sur D8 – D15).

III.1 – Adressage du PIA en mode paire

Pour la sélection du PIA en mode d’adressage paire, on doit utiliser le signal /UDS, car les données
paires passent sur le bus de données D8 – D15, du microprocesseur.
EL
.
Pr

Dans ce montage, les broches de sélections CS1 et CS2 sont relier à Vcc (5 Volts) et le signal de
sélection /CS2 est relier au signal /UDS, puisque le PIA est en mode paire.

2
III.2 – Adressage du PIA en mode impaire

Pour la sélection du PIA en mode d’adressage impaire, on doit utiliser le signal /LDS, car les

I
données impaires passent sur le bus de données D0 – D7, du microprocesseur.

AN
TM
UA
Dans ce montage, les broches de sélections CS1 et CS2 sont relier à Vcc (5 Volts) et le signal de
sélection /CS2 est relier au signal /LDS, puisque le PIA est en mode impaire.
BO
IV – Registres internes du PIA 6821

L’interface parallèle PIA 6821 est composé de 6 registres internes :

 2 Registres de Contrôle : CRA (Port A) et CRB (port B) ;


 2 Registres de direction : DDRA (Port A) et DDRB (Port B)
 2 Registres d’entrée / sortie : ORA (Port A) et ORB (Port B) ;
EL

IV.1 – Registres de contrôle CRA et CRB

Les deux registres de control CRA (Control Register A) et CRB (Control Register B) sont utilisés
pour le control des ports A et B (le port A est contrôlé avec CRA et el port B est contrôlé avec
CRB). Le contrôle exercé par les deux registres de contrôle CRA et CRB sur les ports A et B se fait
comme suit :

 Le Bit No2 CRA Permet de :


.

 Sélectionner le registre DDRA, si ce bit No2 = 0 ;


 Sélectionner le registre ORA (Port A), si ce bit No2 = 1 ;
Pr

 Le Bit No2 CRB Permet de :

 Sélectionner le registre DDRB, si ce bit No2 = 0 ;


 Sélectionner le registre ORB (Port B), si ce bit No2 = 1 ;

3
IV.2 – Registres de direction de données DDRA et DDRB

Les deux Registres de directions de données DDRA (Data Direction Register A) et (DDRB (Data

I
Direction Register B) sont utilisés pour configurer les Ports A et B soit en entrées ou bien en
sorties. La programmation des ports A et B du PIA 6821 se fait comme suit :

AN
 Les 8 bits du registre DDRA permettent de programmer le port A en entrées ou en
sortie ;

 Si le bit numéro « i » du registre DDRA est à « 1 » (DDRAi = 1), alors la


ligne numéro « i » du port A en sortie ;

TM
 Si le bit numéro « i » du registre DDRA est à « 0 » (DDRAi = 0), alors la
ligne numéro « i » du port A en entrée ;

 Les 8 bits du registre DDRB permettent de programmer le port B en entrées ou en


sortie ;
UA
 Si le bit numéro « i » du registre DDRB est à « 1 » (DDRBi = 1), alors la
ligne numéro « i » du port B en sortie ;

 Si le bit numéro « i » du registre DDRB est à « 0 » (DDRBi = 0), alors la


BO
ligne numéro « i » du port B en entrée ;

Exemple :

Soit la configuration suivante de DDRA :

DDRA = 1 1 1 1 0 0 0 0
Alors :
EL

No du Bit 7 6 5 4 3 2 1 0
Port A
Entrée ou
Sur 8 Bits Sortie Sortie Sortie Sortie Entrée Entrée Entrée Entrée
Sortie

IV.3 – Registre de Sortie ORA et ORB (Port A et Port B)

Les deux Registres de sorties ORA (Output Register A) et ORB (Output Register B), sont deux
.

registres utilisés par les deux ports A et B en lecture et en écriture

V – Adressage des registres interne du PIA 6821


Pr

Le PIA 6821 dispose de 6 registres internes, mais il ne dispose que de 2 bits d’adresses (A0 et A1).
Il ne peut adresser de ce fait que 4 octets, car avec deux bits d’adresses on ne peut adresser que 4
cases mémoires.

Le PIA 6821 ne peut donc adresser que 4 registres internes parmi les 6 registres internes dont il
dispose réellement. Pour résoudre ce problème le PIA 6821 utilise la technique suivante :

4
 Les deux registres DDRA et ORA partagent la même adresse. La sélection entre ses
deux registres se fait par l’intermédiaire bu bit Numéro « 2 » du registre CRA ;
 Les deux registres DDRB et ORB partagent la même adresse. La sélection entre ses

I
deux registres se fait par l’intermédiaire bu bit Numéro « 2 » du registre CRB ;

AN
RS0 RS1 Registre sélectionné Adresse
0 0 DDRA et ORA Adr
0 1 CRA Adr + 2
1 0 DDRA et ORB Adr + 4

TM
1 1 CRB Adr + 6

VI – Programmation du PIA 6821

UA
La programmation du port A, respectivement du port B, du PIA 6821, consiste à écrire un octet de 8
bits dans le registre de direction de données DDRA, respectivement dans le registre de direction de
données BBRB.;

Pour programmer le port A par exemple, on suit la démarche suivante :


BO
Etape No1 : Mettre le bit N°2 du registre CRA à « 0 » pour accéder au registre DDRA ;

Etape No2 : Les bits de DDRA définissent l’état (en entrées ou en sorties) des lignes du port A :

 Si le bit No « i » de DDRA est égale à « 0 » (DDRAi = 0). Alors le bit No « i » du port A


(ORAi) est en entrée ;
 Si le bit No « i » de DDRA est égale à « 1 » (DDRAi = 1). Alors le bit No « i » du port A
EL

(ORAi) est en sortie ;

Etape No 3 : Mettre le bit N°2 du registre CRA à « 1 » pour accéder au Port A (registre ORA) ;

Pour programmer le port B, du PIA 6821, on procède de la même manière que pour le port A :

Etape No1 : Mettre le bit N°2 du registre CRB à « 0 » pour accéder au registre DDRB ;
.

Etape No2 : Les bits de DDRB définissent l’état (en entrées ou en sorties) des lignes du port B :

 Si le bit No « i » de DDRB est égale à « 0 » (DDRBi = 0). Alors le bit No « i » du port B


Pr

(ORBi) est en entrée ;


 Si le bit No « i » de DDRB est égale à « 1 » (DDRBi = 1). Alors le bit No « i » du port B
(ORBi) est en sortie ;

Etape No 3 : Mettre le bit N°2 du registre CRB à « 1 » pour accéder au Port B (registre ORA) ;

5
Exemple :

Soit à programmer le Port A d’un PIA 6821 en entrée et le Port B en sortie. L’adresse de ce PIA est

I
$0500.

Adresse de DDRA et ORA = $0500

AN
Adresse de CRA = $0502

Adresse de DDRB et ORB = $0504

TM
Adresse de CRB = $0506

Comme le port A est en entrée, alors DDRA = $00 et comme le port B est en sortie alors DDRB =
$FF.

Programme d’initialisation

Organigramme UA Programme Assembleur


Déclaration des adresses des registres internes :

DDRA EQU $0500


BO
ORA EQU $0500
CRA EQU $0502
DDRB EQU $0504
ORAB EQU $0504
CRAB EQU $0506

Programme d’initialisation du PIA :


EL

MOVE.B #$00, CRA

MOVE.B #$00, DDRA

MOVE.B #$FF, CRA

MOVE.B #$00, CRA


.

MOVE.B #$00, DDRA


Pr

MOVE.B #$FF, CRA

END

6
VII – Conclusion

Le PIA 6821 est un circuit d’interface d’entrées sorties qui permet d’interfacer le microprocesseur

I
68000 avec le milieu extérieur.

Ce PIA 6821 possède deux ports, ports A et B, qui sont sur 8 bits et configurables en entrées sorties.

AN
Chacun des bits des lignes des ports A ou B, est configurable individuellement soit en entrée soit en
sortie.

TM
UA
BO
EL
.
Pr

Vous aimerez peut-être aussi