École centrale d’Électronique

45
1 École Centrale d’Électronique ARCHITECTURE DES MICROPROCESSEURS J.FRANCOMME - G.MERCIER

Upload: others

Post on 19-Jun-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: École Centrale d’Électronique

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

Page 2: École Centrale d’Électronique

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

Page 3: École Centrale d’Électronique

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

Page 4: École Centrale d’Électronique

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

Page 5: École Centrale d’Électronique

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

Page 6: École Centrale d’Électronique

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 »

Page 7: École Centrale d’Électronique

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)

Page 8: École Centrale d’Électronique

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.

Page 9: École Centrale d’Électronique

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.

Page 10: École Centrale d’Électronique

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.

Page 11: École Centrale d’Électronique

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.

Page 12: École Centrale d’Électronique

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

Page 13: École Centrale d’Électronique

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

Page 14: École Centrale d’Électronique

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

Page 15: École Centrale d’Électronique

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

Page 16: École Centrale d’Électronique

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

Page 17: École Centrale d’Électronique

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

Page 18: École Centrale d’Électronique

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.

Page 19: École Centrale d’Électronique

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)

Page 20: École Centrale d’Électronique

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)

Page 21: École Centrale d’Électronique

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)

Page 22: École Centrale d’Électronique

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).

Page 23: École Centrale d’Électronique

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

Page 24: École Centrale d’Électronique

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

Page 25: École Centrale d’Électronique

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

Page 26: École Centrale d’Électronique

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).

Page 27: École Centrale d’Électronique

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).

Page 28: École Centrale d’Électronique

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.

Page 29: École Centrale d’Électronique

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.

Page 30: École Centrale d’Électronique

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.

Page 31: École Centrale d’Électronique

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.

Page 32: École Centrale d’Électronique

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.

Page 33: École Centrale d’Électronique

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.

Page 34: École Centrale d’Électronique

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.

Page 35: École Centrale d’Électronique

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.

Page 36: École Centrale d’Électronique

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

Page 37: École Centrale d’Électronique

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

Page 38: École Centrale d’Électronique

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

Page 39: École Centrale d’Électronique

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

Page 40: École Centrale d’Électronique

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

Page 41: École Centrale d’Électronique

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.

Page 42: École Centrale d’Électronique

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

Page 43: École Centrale d’Électronique

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

Page 44: École Centrale d’Électronique

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

Page 45: École Centrale d’Électronique

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