École centrale d’Électronique
TRANSCRIPT
Jackson FRANCOMME - Gilles MERCIER 1
École Centrale d’Électronique
ARCHITECTURE DES MICROPROCESSEURS
J.FRANCOMME - G.MERCIER Jackson FRANCOMME - Gilles MERCIER 2
École Centrale d’ÉlectroniqueI. IntroductionII. Concept d’informatique industrielleIII. Evolution des microprocesseurs (Complexité, performances)IV. Les langages de programmationV. Codages des informationsVI. Algèbre de Boole et circuits logiquesVII. Architecture générale des microprocesseursVIII. Présentation du 68000IX. Principe de fonctionnementX. Principe d’un microcontrôleurXI. Décodage d’adressesXII. Programmation du microprocesseur 68000 (Motorola)XIII. Jeu d’instructions du 68000 et modes d’adressagesXIV. Illustration des modes d’adressages du microprocesseur 68000 (Motorola)XV. Sous-programmes, gestion de la pile, passage de paramètresXVI. Mode Superviseur et UtilisateurXVII. Allocation dynamique de la mémoire XVIII. Les exceptions et les interruptions.
Jackson FRANCOMME - Gilles MERCIER 3
Planning
Projet
TP
TD
Cours
Semaine
Finle 6 mars
à midiDébutRemise
sujet
31,5
222
3342
27-févr.20-févr.13-févr.7-févr.30-janv.23-janv.16-janv.9-janv.2-janv.
987654321
TP1 : Prise en main du logiciel de simulation pour la mise en œuvre d’une des applications proposée.TP2 : Suivi projets l’algorithme global de l’application doit être rédigé, détail des éléments devant
être programmés.TP3 : Validation expérimentale des principales structures de l’application.
Intervenants : J. FRANCOMME Cours/TP/TD/ProjetJ.P. PIAU TD/TP/ProjetB. DJOUDI TD/TP/Projet
Evaluation écrite (devoir 2H).Jackson FRANCOMME - Gilles MERCIER 4
I| Introduction
Jackson FRANCOMME - Gilles MERCIER 5
Objectifs
Introduction à la programmation en assembleur.Mise en œuvre d’une méthode de programmation de bas niveau sur une architecture matérielle simple.
Support choisi : Microprocesseur famille 68000 (Motorola).
Jackson FRANCOMME - Gilles MERCIER 6
Pré requis
Architecture générale d’un système informatique.Électronique numérique de basePrincipe de codage d’une information dans une base quelconque.Principe d’écriture d’un algorithme.
Jackson FRANCOMME - Gilles MERCIER 7
Présentation générale
Les MicroprocesseursLes MicrocontrôleursLes PériphériquesLes Applications
Micr
opro
cesseu
rs
Périphéri
ques
Micr
ocon
trôleu
rs
Applic
ation
s
… …
…
…
Jackson FRANCOMME - Gilles MERCIER 8
II| Concept d’Informatique Industrielle
Concept d’Informatique Industrielle
Jackson FRANCOMME - Gilles MERCIER 5
Objectifs
Introduction à la programmation en assembleur.Mise en œuvre d’une méthode de programmation de bas niveau sur une architecture matérielle simple.
Support choisi : Microprocesseur famille 68000 (Motorola).
Jackson FRANCOMME - Gilles MERCIER 6
Pré requis
Architecture générale d’un système informatique.Électronique numérique de basePrincipe de codage d’une information dans une base quelconque.Principe d’écriture d’un algorithme.
Jackson FRANCOMME - Gilles MERCIER 7
Présentation générale
Les MicroprocesseursLes MicrocontrôleursLes PériphériquesLes Applications
Micr
opro
cesseu
rs
Périphéri
ques
Micr
ocon
trôleu
rs
Applic
ation
s
… …
…
…
Jackson FRANCOMME - Gilles MERCIER 8
II| Concept d’Informatique Industrielle
Concept d’Informatique Industrielle
Jackson FRANCOMME - Gilles MERCIER 41
VII| Les langages de programmation
Jackson FRANCOMME - Gilles MERCIER 42
Pourquoi apprendre l’assembleur ?Avantages :– C’est le langage le plus proche du processeur (après le langage machine)
qui permet une exécution plus rapide de l’application.– C’est le seul langage qui permette de comprendre réellement comment
fonctionne votre machine informatique.– La syntaxe est très simple et la taille du code est optimisée.– Logiciels de développement/débogage peu couteux
Inconvénients : – Portabilité uniquement sur les machines munies d’un processeur de la
même famille.– « Time to Market » pour les grosses applications.
Conclusion– Utilisation de la programmation assembleur pour les applications de petite
taille nécessitant un traitement ponctuel rapide ne pouvant être assuré par un langage de plus haut niveau.
Jackson FRANCOMME - Gilles MERCIER 43
VIII| Codages des informations
Codages des nombres
Jackson FRANCOMME - Gilles MERCIER 44
Nombres entiers non signés (≥0)En informatique– Binaire 0 et 1.– Hexadécimal (base 16) 0 à 9 et A à F.
Notation positionnelle (conversion base b →10)– N (b) = dn-1 dn-2 ... d1 d0
– N (10) = bn-1dn-1 + bn-2dn-2 ... + b1d1 + b0d0
– avec n chiffres 0≤ N ≤ bn - 1 soit bn valeurs.
rangpoids
Jackson FRANCOMME - Gilles MERCIER 41
VII| Les langages de programmation
Jackson FRANCOMME - Gilles MERCIER 42
Pourquoi apprendre l’assembleur ?Avantages :– C’est le langage le plus proche du processeur (après le langage machine)
qui permet une exécution plus rapide de l’application.– C’est le seul langage qui permette de comprendre réellement comment
fonctionne votre machine informatique.– La syntaxe est très simple et la taille du code est optimisée.– Logiciels de développement/débogage peu couteux
Inconvénients : – Portabilité uniquement sur les machines munies d’un processeur de la
même famille.– « Time to Market » pour les grosses applications.
Conclusion– Utilisation de la programmation assembleur pour les applications de petite
taille nécessitant un traitement ponctuel rapide ne pouvant être assuré par un langage de plus haut niveau.
Jackson FRANCOMME - Gilles MERCIER 43
VIII| Codages des informations
Codages des nombres
Jackson FRANCOMME - Gilles MERCIER 44
Nombres entiers non signés (≥0)En informatique– Binaire 0 et 1.– Hexadécimal (base 16) 0 à 9 et A à F.
Notation positionnelle (conversion base b →10)– N (b) = dn-1 dn-2 ... d1 d0
– N (10) = bn-1dn-1 + bn-2dn-2 ... + b1d1 + b0d0
– avec n chiffres 0≤ N ≤ bn - 1 soit bn valeurs.
rangpoids
Jackson FRANCOMME - Gilles MERCIER 61
Forcer la valeur d'un bit - OUValeur 0 0 1 1 0 0 0 1Masque 0 0 0 0 0 0 1 0__________________________________________________________Valeur 0 0 1 1 0 0 1 1
Valeur 0 0 1 1 0 0 1 1Masque 0 0 0 0 0 0 1 0__________________________________________________________Valeur 0 0 1 1 0 0 1 1
Valeur ← Valeur OU 02h
OU
OU
Jackson FRANCOMME - Gilles MERCIER 62
XV| Architecture générale des microprocesseurs
Architecture générale des microprocesseurs
Jackson FRANCOMME - Gilles MERCIER 63
Architecture générale des microprocesseurs
Architectures de VON NEUMANN et HARVARDUnités internes : unité de bus – de pré extraction – de décodage – de contrôle – arithmétique et logique – de gestion mémoire.
Jackson FRANCOMME - Gilles MERCIER 64
Structures des systèmes micro programmé
L’architecture d’un microprocesseur, est un élément important qui conditionne directement les performances d’un processeur. Il existe deux types fondamentaux de structures, dites « Von Neumann » et « Harvard »
Jackson FRANCOMME - Gilles MERCIER 65
Structures des systèmes micro programmé
Jackson FRANCOMME - Gilles MERCIER 66
Choix d’un microprocesseur pour un apprentissage simplifié
Objectif dans le choix : – utiliser une architecture la plus simple possible qui permettra d’appréhender un large
éventail des techniques de programmation et des modes d’adressages, que l’on pourra porter sur n’importe laquelle des architectures actuelles aussi complexe soit elle.
Différentes familles de microprocesseurs :– Les microprocesseurs
» Famille Motorola/Freescale» PowerPC » Famille Intel : 80x86 : le « x » représente la famille. On parle ainsi de 386, 486, 586, 686,
etc.» ARM » IA-64 » MIPS » SPARC » …
– Les microcontrôleurs» Microchip» Intel» Freescale» …
Jackson FRANCOMME - Gilles MERCIER 67
Famille 68000 de MotorolaFreescale maintenant !
famille 68000 de Motorola– 68000 : 16-32 bits CISC– 68008 : 8-32 bits CISC – 68010 : 16-32 bits CISC – 68020 : 32 bits CISC – 68030 : 32 bits CISC – 68040 : 32 bits CISC – 68060 : 32 bits CISC– 68330 (ou CPU32) : – ColdFire : 16 bits CISC (jeu d’instructions CISC de la famille 68000)
» La gamme ColdFire est classifiée en 5XNN (X : génération, NNpour classification produits)
– DragonBall : 16 bits CISC (basé sur le 68000 Palm) famille 88000 (Motorola) : 32 bits RISC
– 88100
Jackson FRANCOMME - Gilles MERCIER 68
Famille PowerPCfamille PowerPC (Apple, IBM et Motorola) : 32 et 64 bits RISC (Performance Optimization With Enhanced RISC). Utilisés dans les calculateurs, stations graphiques, serveurs Unix, mainframes et mini-ordinateurs d'IBM, ainsi que dans les Macintosh (Power Mac, PowerBook, iMac, iBook, eMac,Mac mini) et dans la console Nintendo Revolution, GameCube, Xbox 360, Playstation 3 notamment.
– PowerPC 403– PowerPC 405– PowerPC 440– PowerPC 601– PowerPC 603– PowerPC 603e– PowerPC 604– PowerPC 604e– PowerPC 620 (64 bit) – PowerPC 750 (ou G3) – PowerPC 7400-7450-7455 (ou G4) – PowerPC 970 (ou G5) (64 bit)
Jackson FRANCOMME - Gilles MERCIER 73
Mon choix : famille Motorola 68000Utilisation par :
– Apple computer (Premier Macintosh)– Atari– Comodore– Sega (console de jeux Megadrive)– Silicon Graphics– SNK (Console de jeux Neo Geo)– Sun Microsystems premières stations de travail Sun– Texas Instruments : calculatrice TI-89, TI-89 Titanium, TI-92, TI-92 Plus et TI
Voyage 200On retrouve encore des 68K sous forme microcontrôleur de la famille 68300 (68328 par exemple) utilisé dans les ordinateurs de poche (Pocket PC) comme PalmTop…On pourrait croire que le 68K est dépassé. La réalité prouve le contraire :
– On utilise encore massivement (>50 %) ce type de processeur (et successeurs) dans le monde industriel sous forme de cartesVME par exemple (Versa Module Eurocard).
– On le retrouve dans les téléphones portables.– Il est utilisé dans Ariane 5, A380...
Jackson FRANCOMME - Gilles MERCIER 74
L’enseignement de l’assembleur !On enseigne toujours l’assembleur avec une plateforme 68000 dans un grand nombre d’écoles.
Bibliographie : – Informatique Industrielle, Roger D. Hersch, Presses Polytechniques
Universitaires Romandes, 1997, ISBN 2-88074-353-2» Pour des raisons didactiques, la plupart des concepts sont introduits en
prenant comme exemple le microprocesseur 68000…Une fois les concepts de base assimilés, l'étudiant pourra facilement les appliquer à d'autres processeurs et interfaces et être en mesure de programmer les microcontrôleurs utilisés dans les applications industrielles.
Jackson FRANCOMME - Gilles MERCIER 75
Qui indique avoir fait de l’assembleur 68000 (CV Web 2005) !
R. Jr. Landry : Ingénieur, Ph. D. (SUPAERO, ENAC (Toulouse) Ecole Polytechnique Montréal, …)Laurent Noé : Ingénieur, Ph.D. (ESIAL, LORIA Nancy, LIFL (V. d’Ascq..))T. Piart : Ingénieur (ESIEE)S. Zaidenberg : Ingénieure, Doctorante (INPG (Grenoble), CNAM,…)…
Jackson FRANCOMME - Gilles MERCIER 76
La force du microprocesseur 68000C ’est le premier processeur pensé pour l’informaticien (le programmeur) au travers de :
Son jeu d ’instructions qui permet de manipuler simplement des structures de données complexes (tableaux multidimensionnels, structures…)Ses modes d ’adressage (façon d ’accéder à une case mémoire).Ses 2 niveaux d ’utilisation (modes utilisateur et superviseur) nécessaires pour implémenter un système d ’exploitation moderne.Ses interruptions avec niveaux de priorité pour s ’interfacer avec le monde extérieur asynchrone.
Jackson FRANCOMME - Gilles MERCIER 73
Mon choix : famille Motorola 68000Utilisation par :
– Apple computer (Premier Macintosh)– Atari– Comodore– Sega (console de jeux Megadrive)– Silicon Graphics– SNK (Console de jeux Neo Geo)– Sun Microsystems premières stations de travail Sun– Texas Instruments : calculatrice TI-89, TI-89 Titanium, TI-92, TI-92 Plus et TI
Voyage 200On retrouve encore des 68K sous forme microcontrôleur de la famille 68300 (68328 par exemple) utilisé dans les ordinateurs de poche (Pocket PC) comme PalmTop…On pourrait croire que le 68K est dépassé. La réalité prouve le contraire :
– On utilise encore massivement (>50 %) ce type de processeur (et successeurs) dans le monde industriel sous forme de cartesVME par exemple (Versa Module Eurocard).
– On le retrouve dans les téléphones portables.– Il est utilisé dans Ariane 5, A380...
Jackson FRANCOMME - Gilles MERCIER 74
L’enseignement de l’assembleur !On enseigne toujours l’assembleur avec une plateforme 68000 dans un grand nombre d’écoles.
Bibliographie : – Informatique Industrielle, Roger D. Hersch, Presses Polytechniques
Universitaires Romandes, 1997, ISBN 2-88074-353-2» Pour des raisons didactiques, la plupart des concepts sont introduits en
prenant comme exemple le microprocesseur 68000…Une fois les concepts de base assimilés, l'étudiant pourra facilement les appliquer à d'autres processeurs et interfaces et être en mesure de programmer les microcontrôleurs utilisés dans les applications industrielles.
Jackson FRANCOMME - Gilles MERCIER 75
Qui indique avoir fait de l’assembleur 68000 (CV Web 2005) !
R. Jr. Landry : Ingénieur, Ph. D. (SUPAERO, ENAC (Toulouse) Ecole Polytechnique Montréal, …)Laurent Noé : Ingénieur, Ph.D. (ESIAL, LORIA Nancy, LIFL (V. d’Ascq..))T. Piart : Ingénieur (ESIEE)S. Zaidenberg : Ingénieure, Doctorante (INPG (Grenoble), CNAM,…)…
Jackson FRANCOMME - Gilles MERCIER 76
La force du microprocesseur 68000C ’est le premier processeur pensé pour l’informaticien (le programmeur) au travers de :
Son jeu d ’instructions qui permet de manipuler simplement des structures de données complexes (tableaux multidimensionnels, structures…)Ses modes d ’adressage (façon d ’accéder à une case mémoire).Ses 2 niveaux d ’utilisation (modes utilisateur et superviseur) nécessaires pour implémenter un système d ’exploitation moderne.Ses interruptions avec niveaux de priorité pour s ’interfacer avec le monde extérieur asynchrone.
Jackson FRANCOMME - Gilles MERCIER 77
Structure du 68000Le microprocesseur 68000 répond à une structure de Von Neumann, c’est-à-dire que l’ensemble des informations (programme et données) seront accessibles à l’aide d’un unique bus de données et d’un unique bus d’adresses.C’est cette architecture que nous étudierons dans ce cours.
Jackson FRANCOMME - Gilles MERCIER 78
XVI| Présentation du microprocesseur 68000
Processeur développé par Motorola en 1979.C ’est un microprocesseur généraliste qui ne possède pas de périphériques intégrés contrairement à un microcontrôleur.Il convient de lui adjoindre de la mémoire externe et des périphériques d ’E/S.
Jackson FRANCOMME - Gilles MERCIER 79
Présentation du microprocesseur 68000Le microprocesseur 68000 a évolué au fil des années :
68000 (1979) : processeur avec bus d ’adresses de 24 bits (16 Mo) et de données 16 bits (cadencé à 10 MHz).68010 : 68000 avec un registre VBR (Vector Base Register) pour replacer n ’importe où en mémoire la table des vecteurs d’interruption.68020 : 68010 avec bus d ’adresses de 32 bits (4 Go) et de données 32 bits.68030 : 68020 avec cache de données.68040 : 68030 avec MMU (Memory Management Unit).68050 : inexistant.68060 (1995) : 68040 amélioré (cadencé à 66 MHz).
Jackson FRANCOMME - Gilles MERCIER 80
Présentation du microprocesseur 68000
Les versions dizaines impaires sont des versions transitoires (68010, 68030).
Les versions dizaines paires sont des versions stables (68000, 68020, 68040, 68060).Le processeur 68K n ’est plus produit depuis 6-7 ans et possède un successeur : le ColdFire.Le ColdFire est un microcontrôleur/DSP intégrant un cœur de 68020 avec un jeu d ’instructions simplifié cadencé à 200 MHz et plus.
Jackson FRANCOMME - Gilles MERCIER 77
Structure du 68000Le microprocesseur 68000 répond à une structure de Von Neumann, c’est-à-dire que l’ensemble des informations (programme et données) seront accessibles à l’aide d’un unique bus de données et d’un unique bus d’adresses.C’est cette architecture que nous étudierons dans ce cours.
Jackson FRANCOMME - Gilles MERCIER 78
XVI| Présentation du microprocesseur 68000
Processeur développé par Motorola en 1979.C ’est un microprocesseur généraliste qui ne possède pas de périphériques intégrés contrairement à un microcontrôleur.Il convient de lui adjoindre de la mémoire externe et des périphériques d ’E/S.
Jackson FRANCOMME - Gilles MERCIER 79
Présentation du microprocesseur 68000Le microprocesseur 68000 a évolué au fil des années :
68000 (1979) : processeur avec bus d ’adresses de 24 bits (16 Mo) et de données 16 bits (cadencé à 10 MHz).68010 : 68000 avec un registre VBR (Vector Base Register) pour replacer n ’importe où en mémoire la table des vecteurs d’interruption.68020 : 68010 avec bus d ’adresses de 32 bits (4 Go) et de données 32 bits.68030 : 68020 avec cache de données.68040 : 68030 avec MMU (Memory Management Unit).68050 : inexistant.68060 (1995) : 68040 amélioré (cadencé à 66 MHz).
Jackson FRANCOMME - Gilles MERCIER 80
Présentation du microprocesseur 68000
Les versions dizaines impaires sont des versions transitoires (68010, 68030).
Les versions dizaines paires sont des versions stables (68000, 68020, 68040, 68060).Le processeur 68K n ’est plus produit depuis 6-7 ans et possède un successeur : le ColdFire.Le ColdFire est un microcontrôleur/DSP intégrant un cœur de 68020 avec un jeu d ’instructions simplifié cadencé à 200 MHz et plus.
Jackson FRANCOMME - Gilles MERCIER 81
La force du microprocesseur 68000
Les interruptions avec niveaux de priorité du 68000 sont traitées très rapidement avec un temps de latence très faible ce qui en fait un processeur bien plus performant qu ’un processeur Intel (à fréquence égale).Ceci explique sa suprématie dans le monde industriel et de l ’embarqué...
Jackson FRANCOMME - Gilles MERCIER 82
Principe de fonctionnement
XVII| Principe de fonctionnement
Jackson FRANCOMME - Gilles MERCIER 83
Architecture de base
Horloge
Interfaced’E/S
Interface de sortie
Interface d'entrée
Mémoire àlecture seule
ROM
Terminal Imprimante Souris
Mic
ropr
oces
seur
Mémoire àlecture-écriture
RAM
BABDBC
Jackson FRANCOMME - Gilles MERCIER 84
Les bus du microprocesseurUn bus, c’est :
Le regroupement de n lignes (fils) permettant l’envoi en parallèle d’un mot de n bits entre deux composants 1 et 2.Le bus d’adresse :
– Relie le microprocesseur à tout circuit adressable (mémoire, interfaces d'entrée/sortie ...)– Unidirectionnel– Ex : - un microprocesseur 8 bits comporte 16 bits d’adresse (65536 @),
un microprocesseur 16 bits comporte 20 bits d’adresse (1024000)Le bus de données :
– Transmet les données entre le microprocesseur et le circuit adressé– Bidirectionnel– Un système 8 bits (16, 32, 64 ...) possède un BD 8 bits (16, 32, 64 ...) = taille de l’info que
le processeur peut traiter en une opération élémentaireLe bus de contrôle et de commande :
– Ensemble de lignes transmettant des signaux permettant le fonctionnement du microprocesseur, des circuits mémoire, des circuit d’interface ...
– Ex : R/W (µprocesseur ⌫ circuit) : sens de transmission du bus de donnée, INT (circuit ⌫ µprocesseur) : interruption
Jackson FRANCOMME - Gilles MERCIER 81
La force du microprocesseur 68000
Les interruptions avec niveaux de priorité du 68000 sont traitées très rapidement avec un temps de latence très faible ce qui en fait un processeur bien plus performant qu ’un processeur Intel (à fréquence égale).Ceci explique sa suprématie dans le monde industriel et de l ’embarqué...
Jackson FRANCOMME - Gilles MERCIER 82
Principe de fonctionnement
XVII| Principe de fonctionnement
Jackson FRANCOMME - Gilles MERCIER 83
Architecture de base
Horloge
Interfaced’E/S
Interface de sortie
Interface d'entrée
Mémoire àlecture seule
ROM
Terminal Imprimante Souris
Mic
ropr
oces
seur
Mémoire àlecture-écriture
RAM
BABDBC
Jackson FRANCOMME - Gilles MERCIER 84
Les bus du microprocesseurUn bus, c’est :
Le regroupement de n lignes (fils) permettant l’envoi en parallèle d’un mot de n bits entre deux composants 1 et 2.Le bus d’adresse :
– Relie le microprocesseur à tout circuit adressable (mémoire, interfaces d'entrée/sortie ...)– Unidirectionnel– Ex : - un microprocesseur 8 bits comporte 16 bits d’adresse (65536 @),
un microprocesseur 16 bits comporte 20 bits d’adresse (1024000)Le bus de données :
– Transmet les données entre le microprocesseur et le circuit adressé– Bidirectionnel– Un système 8 bits (16, 32, 64 ...) possède un BD 8 bits (16, 32, 64 ...) = taille de l’info que
le processeur peut traiter en une opération élémentaireLe bus de contrôle et de commande :
– Ensemble de lignes transmettant des signaux permettant le fonctionnement du microprocesseur, des circuits mémoire, des circuit d’interface ...
– Ex : R/W (µprocesseur ⌫ circuit) : sens de transmission du bus de donnée, INT (circuit ⌫ µprocesseur) : interruption
Jackson FRANCOMME - Gilles MERCIER 81
La force du microprocesseur 68000
Les interruptions avec niveaux de priorité du 68000 sont traitées très rapidement avec un temps de latence très faible ce qui en fait un processeur bien plus performant qu ’un processeur Intel (à fréquence égale).Ceci explique sa suprématie dans le monde industriel et de l ’embarqué...
Jackson FRANCOMME - Gilles MERCIER 82
Principe de fonctionnement
XVII| Principe de fonctionnement
Jackson FRANCOMME - Gilles MERCIER 83
Architecture de base
Horloge
Interfaced’E/S
Interface de sortie
Interface d'entrée
Mémoire àlecture seule
ROM
Terminal Imprimante Souris
Mic
ropr
oces
seur
Mémoire àlecture-écriture
RAM
BABDBC
Jackson FRANCOMME - Gilles MERCIER 84
Les bus du microprocesseurUn bus, c’est :
Le regroupement de n lignes (fils) permettant l’envoi en parallèle d’un mot de n bits entre deux composants 1 et 2.Le bus d’adresse :
– Relie le microprocesseur à tout circuit adressable (mémoire, interfaces d'entrée/sortie ...)– Unidirectionnel– Ex : - un microprocesseur 8 bits comporte 16 bits d’adresse (65536 @),
un microprocesseur 16 bits comporte 20 bits d’adresse (1024000)Le bus de données :
– Transmet les données entre le microprocesseur et le circuit adressé– Bidirectionnel– Un système 8 bits (16, 32, 64 ...) possède un BD 8 bits (16, 32, 64 ...) = taille de l’info que
le processeur peut traiter en une opération élémentaireLe bus de contrôle et de commande :
– Ensemble de lignes transmettant des signaux permettant le fonctionnement du microprocesseur, des circuits mémoire, des circuit d’interface ...
– Ex : R/W (µprocesseur ⌫ circuit) : sens de transmission du bus de donnée, INT (circuit ⌫ µprocesseur) : interruption
Jackson FRANCOMME - Gilles MERCIER 85
John Von Neumann
1903-1957Mathématicienconcept de programme enregistréMachine de Von NeumannGoulot d'étranglement
Jackson FRANCOMME - Gilles MERCIER 86
Structure de base du microprocesseur
Compteur Ordinal
Registre d’instructions
Décodeur
Unité d’exécution
Accumulateur
Commandes
et
séquencement
Mémoire
Jackson FRANCOMME - Gilles MERCIER 87
Structure de base du microprocesseur
Jackson FRANCOMME - Gilles MERCIER 88
L ’Unité Arithmétique et LogiqueALU
Jackson FRANCOMME - Gilles MERCIER 85
John Von Neumann
1903-1957Mathématicienconcept de programme enregistréMachine de Von NeumannGoulot d'étranglement
Jackson FRANCOMME - Gilles MERCIER 86
Structure de base du microprocesseur
Compteur Ordinal
Registre d’instructions
Décodeur
Unité d’exécution
Accumulateur
Commandes
et
séquencement
Mémoire
Jackson FRANCOMME - Gilles MERCIER 87
Structure de base du microprocesseur
Jackson FRANCOMME - Gilles MERCIER 88
L ’Unité Arithmétique et LogiqueALU
Jackson FRANCOMME - Gilles MERCIER 85
John Von Neumann
1903-1957Mathématicienconcept de programme enregistréMachine de Von NeumannGoulot d'étranglement
Jackson FRANCOMME - Gilles MERCIER 86
Structure de base du microprocesseur
Compteur Ordinal
Registre d’instructions
Décodeur
Unité d’exécution
Accumulateur
Commandes
et
séquencement
Mémoire
Jackson FRANCOMME - Gilles MERCIER 87
Structure de base du microprocesseur
Jackson FRANCOMME - Gilles MERCIER 88
L ’Unité Arithmétique et LogiqueALU
Jackson FRANCOMME - Gilles MERCIER 89
Schéma fonctionnel
Accumulateur(s)
UA
L
Instructions
MEMOIRE
DonnéesBus adresses
Bus données
Bus contrôle
Unité Commande
Registre Instructions
Compteur Programme
Indicateurs
Horloge
Tc
F= n HertzTc = 1/n seconde
1 seconde → n cycles
temps Jackson FRANCOMME - Gilles MERCIER 90
DéfinitionsAccumulateur : Contient un opérande ou un résultat.Compteur programme : Contient l’adresse de
l’instruction suivante.Registre instruction : « code opération » de
l’instruction ou opérande.Bus : Ensemble de connections : « adresse mémoire »,
« donnée », « contrôle ».Indicateur : Etat de l’accumulateur lors de la dernière
opération UAL.Horloge : Cadence le système.Unité de contrôle : Dirige le système.Mémoire : Contient les instructions et les données.
Jackson FRANCOMME - Gilles MERCIER 91
Instructions de baseAffectation A ← ConstanteAddition A ←A+ConstanteLecture mémoire (Load)
A ← Contenu MémoireÉcriture mémoire (Store)
Contenu Mémoire ← ABranchement inconditionnelBranchement conditionnel
MOV A, CsteADD A, Cste
MOV A, [Adr]
MOV [Adr],AJ AdresseJ > AdresseJ <= Adresse
Jackson FRANCOMME - Gilles MERCIER 92
Instructions supplémentairesAccumulateur auxiliaire AAMOV AA, Cst ADD A, AA ADD AA,A MOV AA, [Adr] MOV [Adr],AA
Registre d’index IXMOV A,[IX] MOV [IX],AMOV Cst,[IX]
Instructions logiques « ET » « OU » « NON »AND A,AA AND A,CONST OR A,AA OR A,CONST NON A
Dans la mémoire, les instructions sont codées avec desnombres entiers positifs : c’est le code machine.
Jackson FRANCOMME - Gilles MERCIER 117
Exemple de Cartographie Mémoirearchitecture de VON NEUMANN
Jackson FRANCOMME - Gilles MERCIER 118
Exemple de Format du Bus d’adresses
Jackson FRANCOMME - Gilles MERCIER 119
Écriture -Lecture en mémoire (1)
Jackson FRANCOMME - Gilles MERCIER 120
Écriture -Lecture en mémoire (2)
Jackson FRANCOMME - Gilles MERCIER 117
Exemple de Cartographie Mémoirearchitecture de VON NEUMANN
Jackson FRANCOMME - Gilles MERCIER 118
Exemple de Format du Bus d’adresses
Jackson FRANCOMME - Gilles MERCIER 119
Écriture -Lecture en mémoire (1)
Jackson FRANCOMME - Gilles MERCIER 120
Écriture -Lecture en mémoire (2)
Jackson FRANCOMME - Gilles MERCIER 117
Exemple de Cartographie Mémoirearchitecture de VON NEUMANN
Jackson FRANCOMME - Gilles MERCIER 118
Exemple de Format du Bus d’adresses
Jackson FRANCOMME - Gilles MERCIER 119
Écriture -Lecture en mémoire (1)
Jackson FRANCOMME - Gilles MERCIER 120
Écriture -Lecture en mémoire (2)
Jackson FRANCOMME - Gilles MERCIER 133
XX| Programmation du microprocesseur 68000Programmation du microprocesseur 68000 (Motorola)
Ressources : registres, mode superviseur et utilisateurSignaux Organisation mémoireCycles de lecture et d’écritures asynchronesLes modes d’adressages : Immédiat, direct (ou absolu), direct par registre, indirect par registre d’adresse (simple, avec post incrémentation, avec pré décrémentation, avec déplacement de l’adresse, avec un index), relatif au compteur de programme.Le jeu d’instruction du 68000 et codage des instructionsLangage de programmation assembleur – instructions – champs et directives d’assemblage – étiquettes.Comparaisons et tests.Ecriture structurée de programmes
Jackson FRANCOMME - Gilles MERCIER 134
XX| Programmation du 68000Le 68000 exécute des instructions codées en binaires stockées en mémoire centrale à l'adresse contenue dans le compteur ordinal.Pour qu'un programme puisse être exécuté il faut :
créer le programme en binaire, généralement à partir d'une description textuelle appelée "programme source".charger ce programme dans la mémoire.provoquer l'exécution des instructions à partir de l'adresse du début du programme en mémoire.
La première étape est réalisée à l'aide d'un système de développement croisé (cross assembleur / cross Compilateur); les deux dernières étapes sont réalisées à l'aide d'un moniteur déjà présent dans la mémoire du système à microprocesseur.
Jackson FRANCOMME - Gilles MERCIER 135
Format « Motorola S-Records » S1S9
Jackson FRANCOMME - Gilles MERCIER 136
Logiciel de développement croiséUn système de développement croisé est un logiciel qui permet la construction, à partir de "sources", de programmes pour un microprocesseur ou un microcontrôleur appelé cibleet différent du processeur et de l'environnement où s'exécute le logiciel de développement croisé (ie. le PC).Un système de développement croisé comporte :
un assembleur et un ou des compilateurs pour des langages évolués comme C, C++ ou Ada.un éditeur des liens.des utilitaires de chargement et de manipulation de bibliothèque.un simulateur (optionnel).des outils de mise au point (optionnel).
Jackson FRANCOMME - Gilles MERCIER 137
Le mécanisme d’assemblageL'assemblage d'un programme est la traduction de sa description en langage source, ou langage assembleur, en une représentation binaire comportant des instructions et des données.La représentation issue de l'assemblage peut être directement chargée en mémoire, on parle alors d'image mémoire et d'assemblage absolu, ou elle peut nécessiter une transformation par un éditeur des liens avant cette étape, on parle alors de module objet.L'utilisation de modules objets et d'une phase d'édition des liens permet une meilleure modularisation du logiciel ainsi que l'exploitation de bibliothèques.
Jackson FRANCOMME - Gilles MERCIER 138
Le langage d’assemblageProgramme source constitué d’une suite de lignes :
instructionsdirectivescommentaires
Les instructions sont traduites en instructions binaires pour le processeur cible.Les instructions sont décrites selon une convention mnémotechnique.Les directives d'assemblage sont des instructions pour l'assembleur qui sont interprétées au moment de l'assemblage.
Jackson FRANCOMME - Gilles MERCIER 139
Directives d’assemblageElles respectent une syntaxe qui est propre à l'assembleur (et pas nécessairement au processeur cible).Elles peuvent être utilisées pour définir des données
données non initialisées, réservation d'espacedonnées initialisées
Elles peuvent être utilisées pour donner des commandes àl'assembleur
définir une valeur symboliquedéfinir certains paramètres d'assemblage: alignement, type de processeur cible dans une famille, production d'un listing...définir des paramètres transmis à l'éditeur des liens.
Jackson FRANCOMME - Gilles MERCIER 140
Programmation du microprocesseur 68000
Programmation du microprocesseur 68000
Jackson FRANCOMME - Gilles MERCIER 137
Le mécanisme d’assemblageL'assemblage d'un programme est la traduction de sa description en langage source, ou langage assembleur, en une représentation binaire comportant des instructions et des données.La représentation issue de l'assemblage peut être directement chargée en mémoire, on parle alors d'image mémoire et d'assemblage absolu, ou elle peut nécessiter une transformation par un éditeur des liens avant cette étape, on parle alors de module objet.L'utilisation de modules objets et d'une phase d'édition des liens permet une meilleure modularisation du logiciel ainsi que l'exploitation de bibliothèques.
Jackson FRANCOMME - Gilles MERCIER 138
Le langage d’assemblageProgramme source constitué d’une suite de lignes :
instructionsdirectivescommentaires
Les instructions sont traduites en instructions binaires pour le processeur cible.Les instructions sont décrites selon une convention mnémotechnique.Les directives d'assemblage sont des instructions pour l'assembleur qui sont interprétées au moment de l'assemblage.
Jackson FRANCOMME - Gilles MERCIER 139
Directives d’assemblageElles respectent une syntaxe qui est propre à l'assembleur (et pas nécessairement au processeur cible).Elles peuvent être utilisées pour définir des données
données non initialisées, réservation d'espacedonnées initialisées
Elles peuvent être utilisées pour donner des commandes àl'assembleur
définir une valeur symboliquedéfinir certains paramètres d'assemblage: alignement, type de processeur cible dans une famille, production d'un listing...définir des paramètres transmis à l'éditeur des liens.
Jackson FRANCOMME - Gilles MERCIER 140
Programmation du microprocesseur 68000
Programmation du microprocesseur 68000
Jackson FRANCOMME - Gilles MERCIER 145
Condition Code Computation
Jackson FRANCOMME - Gilles MERCIER 146
Registres-décalage et rotation
Jackson FRANCOMME - Gilles MERCIER 147
Mouvements de données (1)MOVE :commande généraliste de déplacement (lecture ou écriture).STORE: commande spécifique de rangement en mémoire (écriture)LOAD: commande spécifique de lecture d’une mémoirePUSH: chargement de la pile de sauvegardePULL (ou POP) : déchargement de la pile de sauvegarde,(récupération de la valeur antérieure)EXG,TFR: échange ou transfert entre les registres du microprocesseur (dépend du processeur utilisé).
Jackson FRANCOMME - Gilles MERCIER 148
Modèle de programmation du 68000
Registres de donnéeRegistres d’adresse
Compteur de programme
Registre d’états
A7’ (SSP)
2324
Jackson FRANCOMME - Gilles MERCIER 149
Comparaison avec lemodèle de la famille x86
Jackson FRANCOMME - Gilles MERCIER 150
Comparaison avec un modèle récent de la famille x86
Jackson FRANCOMME - Gilles MERCIER 151
Registres de données du 680008 registres de données D0 à D7 :
Ils contiennent les données manipulées par les instructions du 68000.Ils peuvent également être utilisés comme registre d'index dans les modes d'adressage indexés.Ils peuvent être utilisés comme
des octets (8 bits de large) notation Dn.Bdes mots (16 bits de large) notation Dn.Wdes longs mots (32 bits de large) notation Dn.L
Jackson FRANCOMME - Gilles MERCIER 152
Registres d’adresses du 680008 registres d'adresses A0 à A7
A7 est le pointeur de pile utilisateur (SP ou USP)Ils contiennent les adresses manipulées par les instructions du 68000 et sont utilisés pour construire les adresses des opérandes en fonction des modes d'adressage.Ils peuvent être utilisés comme :
des mots (16 bits de large) notation An.Wdes longs mots (32 bits de large) notation An.L
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).
Jackson FRANCOMME - Gilles MERCIER 149
Comparaison avec lemodèle de la famille x86
Jackson FRANCOMME - Gilles MERCIER 150
Comparaison avec un modèle récent de la famille x86
Jackson FRANCOMME - Gilles MERCIER 151
Registres de données du 680008 registres de données D0 à D7 :
Ils contiennent les données manipulées par les instructions du 68000.Ils peuvent également être utilisés comme registre d'index dans les modes d'adressage indexés.Ils peuvent être utilisés comme
des octets (8 bits de large) notation Dn.Bdes mots (16 bits de large) notation Dn.Wdes longs mots (32 bits de large) notation Dn.L
Jackson FRANCOMME - Gilles MERCIER 152
Registres d’adresses du 680008 registres d'adresses A0 à A7
A7 est le pointeur de pile utilisateur (SP ou USP)Ils contiennent les adresses manipulées par les instructions du 68000 et sont utilisés pour construire les adresses des opérandes en fonction des modes d'adressage.Ils peuvent être utilisés comme :
des mots (16 bits de large) notation An.Wdes longs mots (32 bits de large) notation An.L
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).
Jackson FRANCOMME - Gilles MERCIER 153
SR - Registre d’état du 68000
Octet systèmeOctet Utilisateur
CCR
Un registre d'état (SR) contenant le CCR dans son octet de poids faible est accessible ainsi que des drapeaux supplémentaires dans l'octet de poids fort.
Le drapeau S détermine le mode du processeur : utilisateur ou superviseur.Le code I0, I1, I2 détermine le niveau de priorité du processeur vis à vis des
interruptions.Le code T0, T1 contrôle le mode de traçage utilisé lors de l'exécution des
instructions.
Jackson FRANCOMME - Gilles MERCIER 154
CCR – Registre de code condition
Le registre CCR est affecté selon le résultat de chaque instruction; les différents drapeaux (C, V, Z, N et X) sont affectés différemment selon les instructions.
C est la retenue propagée d’une instruction à l’autre pour permettre des opérations en précision multiple.
V indique un débordement ; pour l'addition et la soustraction binaire les données sont considérées en complément à deux.
Jackson FRANCOMME - Gilles MERCIER 155
CCR – Registre de code condition
Z indique un résultat nul pour l'opérationN indique un résultat négatif pour l'opération ; le résultat est considéré en complément à deux.X est le drapeau de retenue étendue, il n'est affectéque par certaines instructions pour permettre la propagation de la retenue d'un passage à l'autre dans une boucle.
Jackson FRANCOMME - Gilles MERCIER 156
Compteur ordinal et instructionsL'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 compteur ordinal contient toujours une valeur paire.Les instructions sont constituées de 1 à 7 mots.Le premier mot d'une instruction est le code d'opération (Opcode) et détermine, entre autres, la longueur de l'instruction.
Jackson FRANCOMME - Gilles MERCIER 153
SR - Registre d’état du 68000
Octet systèmeOctet Utilisateur
CCR
Un registre d'état (SR) contenant le CCR dans son octet de poids faible est accessible ainsi que des drapeaux supplémentaires dans l'octet de poids fort.
Le drapeau S détermine le mode du processeur : utilisateur ou superviseur.Le code I0, I1, I2 détermine le niveau de priorité du processeur vis à vis des
interruptions.Le code T0, T1 contrôle le mode de traçage utilisé lors de l'exécution des
instructions.
Jackson FRANCOMME - Gilles MERCIER 154
CCR – Registre de code condition
Le registre CCR est affecté selon le résultat de chaque instruction; les différents drapeaux (C, V, Z, N et X) sont affectés différemment selon les instructions.
C est la retenue propagée d’une instruction à l’autre pour permettre des opérations en précision multiple.
V indique un débordement ; pour l'addition et la soustraction binaire les données sont considérées en complément à deux.
Jackson FRANCOMME - Gilles MERCIER 155
CCR – Registre de code condition
Z indique un résultat nul pour l'opérationN indique un résultat négatif pour l'opération ; le résultat est considéré en complément à deux.X est le drapeau de retenue étendue, il n'est affectéque par certaines instructions pour permettre la propagation de la retenue d'un passage à l'autre dans une boucle.
Jackson FRANCOMME - Gilles MERCIER 156
Compteur ordinal et instructionsL'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 compteur ordinal contient toujours une valeur paire.Les instructions sont constituées de 1 à 7 mots.Le premier mot d'une instruction est le code d'opération (Opcode) et détermine, entre autres, la longueur de l'instruction.
Jackson FRANCOMME - Gilles MERCIER 153
SR - Registre d’état du 68000
Octet systèmeOctet Utilisateur
CCR
Un registre d'état (SR) contenant le CCR dans son octet de poids faible est accessible ainsi que des drapeaux supplémentaires dans l'octet de poids fort.
Le drapeau S détermine le mode du processeur : utilisateur ou superviseur.Le code I0, I1, I2 détermine le niveau de priorité du processeur vis à vis des
interruptions.Le code T0, T1 contrôle le mode de traçage utilisé lors de l'exécution des
instructions.
Jackson FRANCOMME - Gilles MERCIER 154
CCR – Registre de code condition
Le registre CCR est affecté selon le résultat de chaque instruction; les différents drapeaux (C, V, Z, N et X) sont affectés différemment selon les instructions.
C est la retenue propagée d’une instruction à l’autre pour permettre des opérations en précision multiple.
V indique un débordement ; pour l'addition et la soustraction binaire les données sont considérées en complément à deux.
Jackson FRANCOMME - Gilles MERCIER 155
CCR – Registre de code condition
Z indique un résultat nul pour l'opérationN indique un résultat négatif pour l'opération ; le résultat est considéré en complément à deux.X est le drapeau de retenue étendue, il n'est affectéque par certaines instructions pour permettre la propagation de la retenue d'un passage à l'autre dans une boucle.
Jackson FRANCOMME - Gilles MERCIER 156
Compteur ordinal et instructionsL'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 compteur ordinal contient toujours une valeur paire.Les instructions sont constituées de 1 à 7 mots.Le premier mot d'une instruction est le code d'opération (Opcode) et détermine, entre autres, la longueur de l'instruction.
Jackson FRANCOMME - Gilles MERCIER 153
SR - Registre d’état du 68000
Octet systèmeOctet Utilisateur
CCR
Un registre d'état (SR) contenant le CCR dans son octet de poids faible est accessible ainsi que des drapeaux supplémentaires dans l'octet de poids fort.
Le drapeau S détermine le mode du processeur : utilisateur ou superviseur.Le code I0, I1, I2 détermine le niveau de priorité du processeur vis à vis des
interruptions.Le code T0, T1 contrôle le mode de traçage utilisé lors de l'exécution des
instructions.
Jackson FRANCOMME - Gilles MERCIER 154
CCR – Registre de code condition
Le registre CCR est affecté selon le résultat de chaque instruction; les différents drapeaux (C, V, Z, N et X) sont affectés différemment selon les instructions.
C est la retenue propagée d’une instruction à l’autre pour permettre des opérations en précision multiple.
V indique un débordement ; pour l'addition et la soustraction binaire les données sont considérées en complément à deux.
Jackson FRANCOMME - Gilles MERCIER 155
CCR – Registre de code condition
Z indique un résultat nul pour l'opérationN indique un résultat négatif pour l'opération ; le résultat est considéré en complément à deux.X est le drapeau de retenue étendue, il n'est affectéque par certaines instructions pour permettre la propagation de la retenue d'un passage à l'autre dans une boucle.
Jackson FRANCOMME - Gilles MERCIER 156
Compteur ordinal et instructionsL'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 compteur ordinal contient toujours une valeur paire.Les instructions sont constituées de 1 à 7 mots.Le premier mot d'une instruction est le code d'opération (Opcode) et détermine, entre autres, la longueur de l'instruction.
Jackson FRANCOMME - Gilles MERCIER 169
XXI| Mouvements de donnéesMOVE R1,$D000
Registre microprocesseur Adresse mémoireopération de transfert (écriture)
MOVE $C001,R2
Registre microprocesseur
opération de transfert (lecture)
Origine Destination
Adresse mémoireOrigine Destination
Jackson FRANCOMME - Gilles MERCIER 170
Composition d’une ligne de programme
Une instruction est constituée de quatre parties séparées par des espaces ou des tabulations
Une étiquette optionnellec'est un nom symbolique (pour l'assemblage) ayant pour valeur l'adresse de l'instructiongénéralement débute en première colonne
Un code : mnémonique spécifiant l'instructionpropre au processeur cibleun qualificateur de taille peut y être adjoint (68000)
.W (mot), .B (octet) ou .L (long mot)parfois plusieurs mnémoniques possibles pour une même instruction
Jackson FRANCOMME - Gilles MERCIER 171
Composition d’une ligne de programmeDes opérandes
en nombre et types propres à l'instruction.décrits suivant une syntaxe caractérisant le mode d'adressageséparés par des virgules.pouvant comporter des expressions calculées en particulier en fonction de noms symboliques.
Des commentairesprécédés par un caractère délimiteur (; ou * pour exemples)de format libre.
Jackson FRANCOMME - Gilles MERCIER 172
Modes d’adressages du 68000Le mode d'adressage est la façon dont le processeur va chercher ou placer un opérande.Il y a un mode d'adressage pour chaque opérande.Les modes d'adressage possibles sont spécifiques àchaque opérande de chaque instruction.On distingue deux types d'opérande
sourcele microprocesseur va chercher l'opérande
destinationle microprocesseur va placer l'opérande éventuellement après avoir été
le chercher.
Jackson FRANCOMME - Gilles MERCIER 169
XXI| Mouvements de donnéesMOVE R1,$D000
Registre microprocesseur Adresse mémoireopération de transfert (écriture)
MOVE $C001,R2
Registre microprocesseur
opération de transfert (lecture)
Origine Destination
Adresse mémoireOrigine Destination
Jackson FRANCOMME - Gilles MERCIER 170
Composition d’une ligne de programme
Une instruction est constituée de quatre parties séparées par des espaces ou des tabulations
Une étiquette optionnellec'est un nom symbolique (pour l'assemblage) ayant pour valeur l'adresse de l'instructiongénéralement débute en première colonne
Un code : mnémonique spécifiant l'instructionpropre au processeur cibleun qualificateur de taille peut y être adjoint (68000)
.W (mot), .B (octet) ou .L (long mot)parfois plusieurs mnémoniques possibles pour une même instruction
Jackson FRANCOMME - Gilles MERCIER 171
Composition d’une ligne de programmeDes opérandes
en nombre et types propres à l'instruction.décrits suivant une syntaxe caractérisant le mode d'adressageséparés par des virgules.pouvant comporter des expressions calculées en particulier en fonction de noms symboliques.
Des commentairesprécédés par un caractère délimiteur (; ou * pour exemples)de format libre.
Jackson FRANCOMME - Gilles MERCIER 172
Modes d’adressages du 68000Le mode d'adressage est la façon dont le processeur va chercher ou placer un opérande.Il y a un mode d'adressage pour chaque opérande.Les modes d'adressage possibles sont spécifiques àchaque opérande de chaque instruction.On distingue deux types d'opérande
sourcele microprocesseur va chercher l'opérande
destinationle microprocesseur va placer l'opérande éventuellement après avoir été
le chercher.
Jackson FRANCOMME - Gilles MERCIER 169
XXI| Mouvements de donnéesMOVE R1,$D000
Registre microprocesseur Adresse mémoireopération de transfert (écriture)
MOVE $C001,R2
Registre microprocesseur
opération de transfert (lecture)
Origine Destination
Adresse mémoireOrigine Destination
Jackson FRANCOMME - Gilles MERCIER 170
Composition d’une ligne de programme
Une instruction est constituée de quatre parties séparées par des espaces ou des tabulations
Une étiquette optionnellec'est un nom symbolique (pour l'assemblage) ayant pour valeur l'adresse de l'instructiongénéralement débute en première colonne
Un code : mnémonique spécifiant l'instructionpropre au processeur cibleun qualificateur de taille peut y être adjoint (68000)
.W (mot), .B (octet) ou .L (long mot)parfois plusieurs mnémoniques possibles pour une même instruction
Jackson FRANCOMME - Gilles MERCIER 171
Composition d’une ligne de programmeDes opérandes
en nombre et types propres à l'instruction.décrits suivant une syntaxe caractérisant le mode d'adressageséparés par des virgules.pouvant comporter des expressions calculées en particulier en fonction de noms symboliques.
Des commentairesprécédés par un caractère délimiteur (; ou * pour exemples)de format libre.
Jackson FRANCOMME - Gilles MERCIER 172
Modes d’adressages du 68000Le mode d'adressage est la façon dont le processeur va chercher ou placer un opérande.Il y a un mode d'adressage pour chaque opérande.Les modes d'adressage possibles sont spécifiques àchaque opérande de chaque instruction.On distingue deux types d'opérande
sourcele microprocesseur va chercher l'opérande
destinationle microprocesseur va placer l'opérande éventuellement après avoir été
le chercher.
Jackson FRANCOMME - Gilles MERCIER 169
XXI| Mouvements de donnéesMOVE R1,$D000
Registre microprocesseur Adresse mémoireopération de transfert (écriture)
MOVE $C001,R2
Registre microprocesseur
opération de transfert (lecture)
Origine Destination
Adresse mémoireOrigine Destination
Jackson FRANCOMME - Gilles MERCIER 170
Composition d’une ligne de programme
Une instruction est constituée de quatre parties séparées par des espaces ou des tabulations
Une étiquette optionnellec'est un nom symbolique (pour l'assemblage) ayant pour valeur l'adresse de l'instructiongénéralement débute en première colonne
Un code : mnémonique spécifiant l'instructionpropre au processeur cibleun qualificateur de taille peut y être adjoint (68000)
.W (mot), .B (octet) ou .L (long mot)parfois plusieurs mnémoniques possibles pour une même instruction
Jackson FRANCOMME - Gilles MERCIER 171
Composition d’une ligne de programmeDes opérandes
en nombre et types propres à l'instruction.décrits suivant une syntaxe caractérisant le mode d'adressageséparés par des virgules.pouvant comporter des expressions calculées en particulier en fonction de noms symboliques.
Des commentairesprécédés par un caractère délimiteur (; ou * pour exemples)de format libre.
Jackson FRANCOMME - Gilles MERCIER 172
Modes d’adressages du 68000Le mode d'adressage est la façon dont le processeur va chercher ou placer un opérande.Il y a un mode d'adressage pour chaque opérande.Les modes d'adressage possibles sont spécifiques àchaque opérande de chaque instruction.On distingue deux types d'opérande
sourcele microprocesseur va chercher l'opérande
destinationle microprocesseur va placer l'opérande éventuellement après avoir été
le chercher.
Jackson FRANCOMME - Gilles MERCIER 173
Représentation d’une instructionExemple : ADDI.B #$55, D2A partir du jeu d’instruction, on peut lire :
Opération : Immediate Data+Destination DestinationSyntaxe : ADDI #<data>,<EA>Attributs : Size = (Byte, Word, Long)Codes Condition : Operation set all flags in CCR.format Instruction :
Effective addresssize
Long data (32 bits)Byte data (8 bits)Word data (16 bits)
registermode01100000
0123456789101112131415
Jackson FRANCOMME - Gilles MERCIER 174
Représentation d’une instructionSoit :
code instruction sur 16 bits :0000 0110 0000 0010 $0602La valeur :0000 0000 0101 0101 $0055Le code de l’instruction complet :
Bien que l’opération se fasse sur un octet, la donnée est codée en mémoire sur 1 mot (16 bits).
$06 $02 $00 $55 sur 4 octets
Jackson FRANCOMME - Gilles MERCIER 175
Encodage du registre de Code Condition du 68000
Jackson FRANCOMME - Gilles MERCIER 176
Modes d’adressages du 68000
Adressage immédiatAdressage direct et absoluAdressage indirect par registreAdressage indirect par registre avec auto incrémentationAdressage indirect par mémoireAdressage relatif par registreAdressage indexéAdressage indexé avec déplacement
Jackson FRANCOMME - Gilles MERCIER 177
Modes d’adressages du 68000
Jackson FRANCOMME - Gilles MERCIER 178
Adressage ImmédiatL'opérande est placé dans un ou deux mots complémentairesCe mode d'adressage n'est utilisable qu'en lecture et la référence mémoire est dans l'espace programmeSelon sa taille l'opérande est :
dans l'octet de poids faible du mot complémentaire si c'est un octet.dans le mot complémentaire si c'est un mot.dans deux mots complémentaires si c'est un long mot (le mot de poids fort dans le premier mot complémentaire).
Jackson FRANCOMME - Gilles MERCIER 179
Adressage Immédiat
Long MotCode op.
7 015 831 16
31 047 32
MotCode op.
Octet00Code op.
Jackson FRANCOMME - Gilles MERCIER 180
Adressage Immédiat
Jackson FRANCOMME - Gilles MERCIER 177
Modes d’adressages du 68000
Jackson FRANCOMME - Gilles MERCIER 178
Adressage ImmédiatL'opérande est placé dans un ou deux mots complémentairesCe mode d'adressage n'est utilisable qu'en lecture et la référence mémoire est dans l'espace programmeSelon sa taille l'opérande est :
dans l'octet de poids faible du mot complémentaire si c'est un octet.dans le mot complémentaire si c'est un mot.dans deux mots complémentaires si c'est un long mot (le mot de poids fort dans le premier mot complémentaire).
Jackson FRANCOMME - Gilles MERCIER 179
Adressage Immédiat
Long MotCode op.
7 015 831 16
31 047 32
MotCode op.
Octet00Code op.
Jackson FRANCOMME - Gilles MERCIER 180
Adressage Immédiat
Jackson FRANCOMME - Gilles MERCIER 181
Adressage Direct et Absolu
Code Opération Valeur basseAdresse de la donnée
Cellule adresséeOpérande
MémoireValeur haute
Jackson FRANCOMME - Gilles MERCIER 182
Adressage Direct avec Registre de Donnée
L'opérande est dans un des 8 registres de donnée.La taille de l'opérande peut être un octet (.B), un mot (.W) ou un long mot (.L).L'opérande peut être source ou destination.Ce mode ne peut pas être utilisé pour spécifier une adresse de destination dans la mémoire.Syntaxe : AE = Dn
AE : Adresse Effective
Jackson FRANCOMME - Gilles MERCIER 183
Adressage Direct avec Registre de Donnée
Jackson FRANCOMME - Gilles MERCIER 184
Adressage Direct avec Registre d’Adresse
L'opérande est dans un des 8 registres d'adresse.La taille de l'opérande peut être un mot (.W) ou un long mot (.L) ; dans le cas d'un mot il y a extension du bit de signe.L'opérande peut être source ou destination.Ce mode ne peut pas être utilisé pour spécifier une adresse de destination dans la mémoire.AE = An
Jackson FRANCOMME - Gilles MERCIER 181
Adressage Direct et Absolu
Code Opération Valeur basseAdresse de la donnée
Cellule adresséeOpérande
MémoireValeur haute
Jackson FRANCOMME - Gilles MERCIER 182
Adressage Direct avec Registre de Donnée
L'opérande est dans un des 8 registres de donnée.La taille de l'opérande peut être un octet (.B), un mot (.W) ou un long mot (.L).L'opérande peut être source ou destination.Ce mode ne peut pas être utilisé pour spécifier une adresse de destination dans la mémoire.Syntaxe : AE = Dn
AE : Adresse Effective
Jackson FRANCOMME - Gilles MERCIER 183
Adressage Direct avec Registre de Donnée
Jackson FRANCOMME - Gilles MERCIER 184
Adressage Direct avec Registre d’Adresse
L'opérande est dans un des 8 registres d'adresse.La taille de l'opérande peut être un mot (.W) ou un long mot (.L) ; dans le cas d'un mot il y a extension du bit de signe.L'opérande peut être source ou destination.Ce mode ne peut pas être utilisé pour spécifier une adresse de destination dans la mémoire.AE = An
Jackson FRANCOMME - Gilles MERCIER 185
Adressage Direct avec Registre d’Adresse
Jackson FRANCOMME - Gilles MERCIER 186
Adressage Absolu CourtL'opérande est en mémoire et son adresse est contenue dans « le » mot complémentaire de l’instruction (16 bits).Une extension à 32 bits du bit de signe de cette adresse est réalisée.Ce mode d'adressage permet de rejoindre les 32 premiers Koctets et les 32 derniers Koctets de la mémoire (adresses $00000000-$00007FFF et $FFFF8000-$FFFFFFFF).
Jackson FRANCOMME - Gilles MERCIER 187
Adressage Absolu Court
Jackson FRANCOMME - Gilles MERCIER 188
Adressage Absolu Long
L'opérande est en mémoire et son adresse est contenue dans «deux» mots complémentaires.Ce mode d'adressage permet d’accéder à l’ensemble de la mémoire.
Jackson FRANCOMME - Gilles MERCIER 189
Adressage Absolu Long
Jackson FRANCOMME - Gilles MERCIER 190
Adressage Indirect par Registre
Code Opération Registre
Adresse de l’opérande
Instruction
Registre désigné
Opérande
Mémoire
Jackson FRANCOMME - Gilles MERCIER 191
Adressage Indirect par RegistreL'opérande est en mémoire et son adresse est dans un des 8 registres d'adresse.L'opérande peut être source ou destination et sa taille peut être un octet, un mot ou un long mot.Syntaxe : AE = (An)
Jackson FRANCOMME - Gilles MERCIER 192
Adressage Indirect par Registre
Jackson FRANCOMME - Gilles MERCIER 189
Adressage Absolu Long
Jackson FRANCOMME - Gilles MERCIER 190
Adressage Indirect par Registre
Code Opération Registre
Adresse de l’opérande
Instruction
Registre désigné
Opérande
Mémoire
Jackson FRANCOMME - Gilles MERCIER 191
Adressage Indirect par RegistreL'opérande est en mémoire et son adresse est dans un des 8 registres d'adresse.L'opérande peut être source ou destination et sa taille peut être un octet, un mot ou un long mot.Syntaxe : AE = (An)
Jackson FRANCOMME - Gilles MERCIER 192
Adressage Indirect par Registre
Jackson FRANCOMME - Gilles MERCIER 189
Adressage Absolu Long
Jackson FRANCOMME - Gilles MERCIER 190
Adressage Indirect par Registre
Code Opération Registre
Adresse de l’opérande
Instruction
Registre désigné
Opérande
Mémoire
Jackson FRANCOMME - Gilles MERCIER 191
Adressage Indirect par RegistreL'opérande est en mémoire et son adresse est dans un des 8 registres d'adresse.L'opérande peut être source ou destination et sa taille peut être un octet, un mot ou un long mot.Syntaxe : AE = (An)
Jackson FRANCOMME - Gilles MERCIER 192
Adressage Indirect par Registre
Jackson FRANCOMME - Gilles MERCIER 189
Adressage Absolu Long
Jackson FRANCOMME - Gilles MERCIER 190
Adressage Indirect par Registre
Code Opération Registre
Adresse de l’opérande
Instruction
Registre désigné
Opérande
Mémoire
Jackson FRANCOMME - Gilles MERCIER 191
Adressage Indirect par RegistreL'opérande est en mémoire et son adresse est dans un des 8 registres d'adresse.L'opérande peut être source ou destination et sa taille peut être un octet, un mot ou un long mot.Syntaxe : AE = (An)
Jackson FRANCOMME - Gilles MERCIER 192
Adressage Indirect par Registre