Académique Documents
Professionnel Documents
Culture Documents
Polycopié Cours Info Indus 1èreGM - 2023
Polycopié Cours Info Indus 1èreGM - 2023
Pr. : E. EL BOUATMANI
e.elbouatmani@ensem.ac.ma
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
Remarque :
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 :
TM
Le Mot (Word) : C’est un nombre constitué de 2 octets (Exemple 01101110 01011010) ;
UA
BO
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.
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
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
…
EL
On a alors : 1
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 :
I
Exemple :
AN
Chiffre 9 0 1001
Le complément à 1 1 0110
TM
VI.3 - Représentation en complément à 2 :
Exemple :
Chiffre
Le complément à un de
9 0 1001
1 0110
UA
BO
Ajout de 1 + 1
Complément à 2 1 0111
5
VII – Opérations Arithmétiques usuelles en binaire
I
AN
TM
VII.1 - Addition binaire
+ 0 1
0 00 01
- 0 1
BO
0 00 01
1 11 00
Remarques :
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
IX – Conclusion
Base binaire :
I
Utilisée comme représentation des nombres dans un ordinateur ;
AN
Hexadécimal :
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
I
AN
I - Introduction
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 :
Les mémoires ROMs : Mémoires non volatiles à lecture seule, elles sont programmées par
Pr
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 :
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.
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.
En mode lecture Vpp = 5 Volts et en mode programmation Vpp = (12V, 21V, 24V).
2
IV – Organisation interne d’une mémoire
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
Les opérations à effectuer pour la lecture d’une mémoire RAM ou EPROM sont :
.
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) ;
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) ;
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
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
.
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
Ces trois éléments sont reliés entre eux par un bus interne permettant les échanges d’informations.
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 ;
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 ;
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
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
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.
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 :
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 ;
TM
UA
BO
V – Exemple de Programme Assembleur
6
VI - Conclusion
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 :
II – Brochage du 68000
1
Les principaux signaux du microprocesseur MC68000 sont :
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
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.
0 0 1 Niveau 6
0 0 0 Niveau 7 – NMI
Pr
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 Octets paires (Octets 0, 2, 4, 6, …) correspondent aux octets poids forts du bus de
.
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 :
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
o Chacun de ces registres est accessible en un octet (.B), en deux octets ( .W) ou quatre
octets (.L) ;
.
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 ;
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) ;
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) :
TM
V.4 – Les registres d’état SR et CCR
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 ;
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
8
VI - Format d'une instruction et types des opérandes
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 :
Si la destination est un registre d'adresse (A0 – A7), le bit 15 est recopié sur les bits 16 à 31 en
.
9
Registre d’adresse sur 32 bits
I
AN
VII - Conclusion
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
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 :
MOVE.B #$00, D0
.
MOVE.B #$00, D1
Etiq1 ADD.B D1, D0
Pr
ADD.B #$01, D1
CMP.B #$0A, D1
BNE etiq1
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 ;
TM
Opérande Destination : Emplacement d'arrivée ;
………………….
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
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
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
7
Chapitre 6
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 :
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 ;
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 ;
TM
IRQB : Interruption associée au port B ;
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
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 :
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 ;
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 ;
Exemple :
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
Les deux Registres de sorties ORA (Output Register A) et ORB (Output Register B), sont deux
.
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
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.;
Etape No2 : Les bits de DDRA définissent l’état (en entrées ou en sorties) des lignes du port A :
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 :
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.
AN
Adresse de CRA = $0502
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
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