SlideShare une entreprise Scribd logo
Architecture des ordinateurs 4
    Registre BP : pointeur base de la pile (Base Pointer)

       •   C’est un registre de 16 bits qui permet l’adressage de la 1ère case
           mémoire de la pile (libre ou non).
       •   SP = BP, dans le cas d’une pile vide.
       •   BP reste constant durant l’exécution d’un programme.

    Registres SI et DI : ( SI : Source Indexe, DI : Destination Indexe)

       •   A partir d’une adresse de base associée à un bloc de données
           (tableau, chaîne de caractères, …) (l’adresse de base correspond à
           la 1èreadresse de stockage), les registres SI et DI permettent
           l’adressage séquentiel des données de ce bloc.
       •   Adresse d’une données du bloc = Adresse associée au bloc +
           contenu du registre SI ou DI.
       •   Ces registres ont une taille de 16 bits chacun.
                      o
                         Adresse du 1er élément du bloc de données (SI = 0 ou
                          DI = 0)

                                          = 1000H + SI (ou DI) = 1000H

           Puis, SI (ou DI) est incrémenté automatiquement :

           SI = SI + 1 (ou DI = DI + 1)

                      o
                         Adresse du 2er élément du bloc de données (SI = 1 ou
                          DI = 1)

                                          = 1000H + SI (ou DI) = 1001H

           Puis, SI (ou DI) est incrémenté automatiquement :

           SI = SI + 1 (ou DI = DI + 1)
Registre IP (Instruction Pointer)

   •   IP, Instruction Pointer ou Compteur de Programme ou
       Compteur Ordinale, contient l'adresse de l'emplacement mémoire
       où se situe la prochaine instruction à exécuter. Autrement dit, il
       doit indiquer au processeur la prochaine instruction à exécuter.
   •   Le registre IP est constamment modifié après l'exécution de
       chaque instruction afin qu'il pointe sur l'instruction suivante.

Registre d’état (Flag)

   •   Le registre d'état FLAG sert à contenir l'état de certaines
       opérations effectuées par le processeur.
   •   Par exemple, quand le résultat d'une opération est trop grand
       pour être contenu dans le registre cible (celui qui doit contenir le
       résultat de l'opération), un bit spécifique du registre d'état (le bit
       OF) est mis à 1 pour indiquer le débordement.
   •   Flags = Drapeaux, Les drapeaux sont des indicateurs suite à des
       opérations arithmétiques ou logiques.

   •   Le registre d'état du 8088 est formé par les bits suivants :




   Remarque :

   X : bit non utilisé
CF : (Carry Flag)

   •   Bit indicateur au retenue, positionné à 1 lors d’un retenu dans une
       opération d’addition (ADD) ou soustraction (SUB) (voir partie :
       1.2. Unité de commande).
PF : (Parity Flag)

   •   Parité : si le résultat de l'opération contient un nombre pair de 1
       cet indicateur est mis à 1, sinon zéro.


AF : (Auxiliary Flag)

   •   Demie retenue : Ce bit est égal à 1 si on a un retenue du
       quarter de poids faible dans le quarter de poids plus fort.

ZF : (Zero Flag)

   •   Zéro : Cet indicateur est mis à 1 quand le résultat d'une
       opération est égal à zéro. Lorsque l'on vient d'effectuer une
       soustraction (ou une addition). (voir partie : 1.2. Unité de
       commande).

SF : (Sign Flag)

   •   SF est positionné à 1 si le bit de poids fort du résultat d'une
       addition ou soustraction est 1 ; sinon SF=0.
   •   SF est utile lorsque l'on manipule des entiers signés, car le bit de
       poids fort donne alors le signe du résultat. (voir partie : 1.2. Unité
       de commande).

OF : (Overflow Flag)

   •   Débordement : si on a un débordement arithmétique ce bit est
       mis à 1, c-a-d le résultat d'une opération excède la capacité de
       l'opérande (registre ou case mémoire), sinon il est à 0.

DF : (Direction Flag)

   •   Auto Incrémentation/Décrémentation : utilisée pendant les
       instructions sur des blocs de données (chaînes de caractères,
       tableaux, …) pour auto incrémenter ou auto décrémenter le SI et
       le DI.

IF : (Interrupt Flag)

   •   Masque d'interruption : pour masquer les interruptions venant de
       l'extérieur ce
   •    bit est mis à 0, dans le cas contraire le microprocesseur
        reconnaît l'interruption de l'extérieur.

TF : (Trap Flag)
•   Piège : pour que le microprocesseur exécute le programme pas à
       pas.




Les registres segment

   •   Le 8088 a quatre registres segments de 16 bits chacun : CS
        (Code Segment), DS (Data Segment), ES (Extra Segment) et SS
       (Stack Segment).
   •   Ces registres sont chargés de sélectionner les différents segments
       (parties) de la mémoire en pointant sur le début de chacun
        d'entre eux.
   •   Chaque segment de la mémoire ne peut excéder les 65535 octets.

       Registre CS : (Code Segment)

          o   Il pointe sur le segment qui contient les codes des
              instructions du programme en cours.
          o   Si la taille du programme dépasse les 65535 octets alors on
              peut diviser le code sur plusieurs segments (chacun ne
              dépasse pas les 65535 octets) et pour basculer d'une partie
              à une autre du programme il suffit de changer la valeur du
              registre CS et de cette manière on résout le problème des
              programmes qui ont une taille supérieure à 65535 octets.

       Registre DS : (Data Segment)

          o   Le registre segment de données pointe sur le segment
               des variables globales du programme, bien évidemment
               la taille ne peut excéder 65535 octets. S
          o   Si on a des données qui dépassent cette limite, on utilise la
              même astuce citée dans la remarque précédente mais dans
              ce cas on change la valeur de DS.

       Registre ES : (Extra Segment)

          o   Le registre de données supplémentaires ES est utilisé par le
              microprocesseur lorsque l'accès aux autres registres est
              devenu difficile ou impossible pour modifier des données,
              de même ce segment est utilisé pour le stockage des chaînes
              de caractères.

              Registre SS : (Stack Segment)
   Le registre SS pointe sur la pile : la pile est une zone
                     mémoire ou on peut sauvegarder les registres ou les
                     adresses ou les données pour les récupérer après
                     l'exécution d'un sous programme ou l'exécution
                     d'un programme d'interruption.

                    En général il est conseillé de ne pas changer le
                     contenu de ce registre car on risque de perdre des
                     informations très importantes (exemple les
                      passages d'arguments entre le programme
                     principal et le sous programme).
                      Gestion de la mémoire:
Introduction

   •   L'espace mémoire adressable (1 Méga Octet = 220 Octets, 20
       broches du bus d'adresse) du 8088 est divisé en quatre segment
       logiques allant jusqu'à 64 Kilo Octets chacun.
   •   L'accès à ces espaces est direct et simultané, or Le compteur de
       programme est de 16 bits donc la possibilité d'adressage est de
       216 Octet= 64 Kilo Octet (Ce qui ne couvre pas la totalité de la
       mémoire), alors on utilise deux registres pour indiquer une
       adresse au processeur.
   •   Chaque segment débute à l'endroit spécifié par le registre
         segment. Le déplacement (offset) à l'intérieur de chaque
       segment se fait par un registre de décalage qui permet de trouver
       une information à l'intérieur du segment.
           o IP est un registre de déplacement dans le segment code
              (CS).
           o SP est un registre de déplacement dans le segment pile
              (SS).
           o SI et DI sont des registres de déplacement dans les
              segments de données (DS) et segment de données
              supplémentaires (ES).
Adresse physique (segmentation de la mémoire)



   •   La mémoire est divisée en segments de taille 64 Ko.
   •   Chaque segment contient un type différent d’information :
          o Segment Code, contient les instructions d’un programme,
          o Segment Données, contient les données d’un programme,
          o Segment Extra, contient des données supplémentaires
              (utilisé dans des données blocs : chaînes de caractères,
              tableaux, …),
          o Segment Pile, contient le contenu des registres interne AX,
              BX, CX et DX lors d’une interruption.
   •   Chaque segment est adressé par deux registres :
          o Registre Segment ou Registre Base : pointe sur le début du
              segment (Base),
          o Registre de décalage : pointe sur l’information à l’intérieur
              du segment (Offset).
   •   Ainsi, L’adresse physique = Base * 16 + Offset.

   Remarque :

          •
          o   L’adresse segment (Base) et l’adresse de déplacement
              (Offset) sont des adresses sur 16 bits (4 chiffres
              hexadécimaux), adressées par des registres sur 16bits.
          o   Tandis que l’adresse physique est une adresse sur 20 bits (5
chiffres hexadécimaux), adressées par le bus d’adresse de
           20 broches.

•   Le schéma de la figure suivante illustre la formation d'une
    adresse 20 bits à partir du segment et du déplacement sur 16 bits :

Contenu connexe

Similaire à Architecture 4

Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
Sana Aroussi
 
Gestion de la mémoire centrale+résumé.pptx
Gestion de la mémoire centrale+résumé.pptxGestion de la mémoire centrale+résumé.pptx
Gestion de la mémoire centrale+résumé.pptx
Khadija292735
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
ahmedyes
 
Assembleur
AssembleurAssembleur
Assembleur
sarah Benmerzouk
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
Abdelwahab Wahib
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
AliRami3
 
Tp1 architecture m.zarboubi
Tp1 architecture m.zarboubiTp1 architecture m.zarboubi
Tp1 architecture m.zarboubi
MOHAMED ZARBOUBI
 
Jeux d instruction du 6809
Jeux d instruction du 6809Jeux d instruction du 6809
Jeux d instruction du 6809
Amel Morchdi
 
API et Supervision industrielle
API et Supervision industrielle API et Supervision industrielle
API et Supervision industrielle
sarah Benmerzouk
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
Hafid Moujane
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
saidmahfoud2
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdf
KamalZeghdar
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
Abdo Brahmi
 
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfNotes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
IMADABOUDRAR1
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
Peronnin Eric
 
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
youri59490
 

Similaire à Architecture 4 (20)

Assembleur
AssembleurAssembleur
Assembleur
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Gestion de la mémoire centrale+résumé.pptx
Gestion de la mémoire centrale+résumé.pptxGestion de la mémoire centrale+résumé.pptx
Gestion de la mémoire centrale+résumé.pptx
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
 
Assembleur
AssembleurAssembleur
Assembleur
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Tp1 architecture m.zarboubi
Tp1 architecture m.zarboubiTp1 architecture m.zarboubi
Tp1 architecture m.zarboubi
 
Jeux d instruction du 6809
Jeux d instruction du 6809Jeux d instruction du 6809
Jeux d instruction du 6809
 
API et Supervision industrielle
API et Supervision industrielle API et Supervision industrielle
API et Supervision industrielle
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdf
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
 
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfNotes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
 
Ladder
LadderLadder
Ladder
 

Plus de coursuniv

Algo et c
Algo et cAlgo et c
Algo et c
coursuniv
 
Loi d’ohm et loi de joule
Loi d’ohm et loi de jouleLoi d’ohm et loi de joule
Loi d’ohm et loi de joule
coursuniv
 
Influences électrostatiques
Influences électrostatiquesInfluences électrostatiques
Influences électrostatiques
coursuniv
 
Réseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxRéseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes généraux
coursuniv
 
Chapitre 2 potentiel électrostatique
Chapitre 2  potentiel électrostatiqueChapitre 2  potentiel électrostatique
Chapitre 2 potentiel électrostatique
coursuniv
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électrique
coursuniv
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électrique
coursuniv
 
Chapitre 4 equilibre électrostatique des conducteurs
Chapitre 4   equilibre électrostatique des conducteursChapitre 4   equilibre électrostatique des conducteurs
Chapitre 4 equilibre électrostatique des conducteurs
coursuniv
 
Chapitre 1 loi de coulomb et champ électrostatique
Chapitre 1  loi de coulomb et champ électrostatiqueChapitre 1  loi de coulomb et champ électrostatique
Chapitre 1 loi de coulomb et champ électrostatique
coursuniv
 
Chapitre 3 théorème de gauss
Chapitre 3  théorème de gaussChapitre 3  théorème de gauss
Chapitre 3 théorème de gauss
coursuniv
 
Analyse numerique
Analyse numeriqueAnalyse numerique
Analyse numerique
coursuniv
 
Excel
ExcelExcel
Excel
coursuniv
 
Cours langage c
Cours langage cCours langage c
Cours langage c
coursuniv
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
coursuniv
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
coursuniv
 
Loi de coulomb
Loi de coulomb Loi de coulomb
Loi de coulomb
coursuniv
 
Architecture des ordinateurs 3
Architecture des ordinateurs 3Architecture des ordinateurs 3
Architecture des ordinateurs 3
coursuniv
 

Plus de coursuniv (20)

Algo et c
Algo et cAlgo et c
Algo et c
 
Loi d’ohm et loi de joule
Loi d’ohm et loi de jouleLoi d’ohm et loi de joule
Loi d’ohm et loi de joule
 
Influences électrostatiques
Influences électrostatiquesInfluences électrostatiques
Influences électrostatiques
 
Réseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxRéseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes généraux
 
Chapitre 2 potentiel électrostatique
Chapitre 2  potentiel électrostatiqueChapitre 2  potentiel électrostatique
Chapitre 2 potentiel électrostatique
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électrique
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électrique
 
Chapitre 4 equilibre électrostatique des conducteurs
Chapitre 4   equilibre électrostatique des conducteursChapitre 4   equilibre électrostatique des conducteurs
Chapitre 4 equilibre électrostatique des conducteurs
 
Chapitre 1 loi de coulomb et champ électrostatique
Chapitre 1  loi de coulomb et champ électrostatiqueChapitre 1  loi de coulomb et champ électrostatique
Chapitre 1 loi de coulomb et champ électrostatique
 
Analyse s1
Analyse s1Analyse s1
Analyse s1
 
Chapitre 3 théorème de gauss
Chapitre 3  théorème de gaussChapitre 3  théorème de gauss
Chapitre 3 théorème de gauss
 
Analyse numerique
Analyse numeriqueAnalyse numerique
Analyse numerique
 
Excel
ExcelExcel
Excel
 
Excel
ExcelExcel
Excel
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
C
CC
C
 
Loi de coulomb
Loi de coulomb Loi de coulomb
Loi de coulomb
 
Architecture des ordinateurs 3
Architecture des ordinateurs 3Architecture des ordinateurs 3
Architecture des ordinateurs 3
 

Dernier

MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdfMÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
lebaobabbleu
 
Techno Revo et nations (1789-1848) ).pdf
Techno Revo et nations (1789-1848) ).pdfTechno Revo et nations (1789-1848) ).pdf
Techno Revo et nations (1789-1848) ).pdf
NadineHG
 
1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif
NadineHG
 
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGESGUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
DjibrilToure5
 
1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x
NadineHG
 
Auguste Herbin.pptx Peintre français
Auguste   Herbin.pptx Peintre   françaisAuguste   Herbin.pptx Peintre   français
Auguste Herbin.pptx Peintre français
Txaruka
 
A1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdfA1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdf
lebaobabbleu
 
Compréhension orale La famille de Sophie (12).pdf
Compréhension orale  La famille de Sophie (12).pdfCompréhension orale  La famille de Sophie (12).pdf
Compréhension orale La famille de Sophie (12).pdf
lebaobabbleu
 
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
Editions La Dondaine
 

Dernier (9)

MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdfMÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
 
Techno Revo et nations (1789-1848) ).pdf
Techno Revo et nations (1789-1848) ).pdfTechno Revo et nations (1789-1848) ).pdf
Techno Revo et nations (1789-1848) ).pdf
 
1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif
 
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGESGUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
 
1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x
 
Auguste Herbin.pptx Peintre français
Auguste   Herbin.pptx Peintre   françaisAuguste   Herbin.pptx Peintre   français
Auguste Herbin.pptx Peintre français
 
A1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdfA1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdf
 
Compréhension orale La famille de Sophie (12).pdf
Compréhension orale  La famille de Sophie (12).pdfCompréhension orale  La famille de Sophie (12).pdf
Compréhension orale La famille de Sophie (12).pdf
 
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
 

Architecture 4

  • 1. Architecture des ordinateurs 4 Registre BP : pointeur base de la pile (Base Pointer) • C’est un registre de 16 bits qui permet l’adressage de la 1ère case mémoire de la pile (libre ou non). • SP = BP, dans le cas d’une pile vide. • BP reste constant durant l’exécution d’un programme. Registres SI et DI : ( SI : Source Indexe, DI : Destination Indexe) • A partir d’une adresse de base associée à un bloc de données (tableau, chaîne de caractères, …) (l’adresse de base correspond à la 1èreadresse de stockage), les registres SI et DI permettent l’adressage séquentiel des données de ce bloc. • Adresse d’une données du bloc = Adresse associée au bloc + contenu du registre SI ou DI. • Ces registres ont une taille de 16 bits chacun. o  Adresse du 1er élément du bloc de données (SI = 0 ou DI = 0) = 1000H + SI (ou DI) = 1000H Puis, SI (ou DI) est incrémenté automatiquement : SI = SI + 1 (ou DI = DI + 1) o  Adresse du 2er élément du bloc de données (SI = 1 ou DI = 1) = 1000H + SI (ou DI) = 1001H Puis, SI (ou DI) est incrémenté automatiquement : SI = SI + 1 (ou DI = DI + 1)
  • 2. Registre IP (Instruction Pointer) • IP, Instruction Pointer ou Compteur de Programme ou Compteur Ordinale, contient l'adresse de l'emplacement mémoire où se situe la prochaine instruction à exécuter. Autrement dit, il doit indiquer au processeur la prochaine instruction à exécuter. • Le registre IP est constamment modifié après l'exécution de chaque instruction afin qu'il pointe sur l'instruction suivante. Registre d’état (Flag) • Le registre d'état FLAG sert à contenir l'état de certaines opérations effectuées par le processeur. • Par exemple, quand le résultat d'une opération est trop grand pour être contenu dans le registre cible (celui qui doit contenir le résultat de l'opération), un bit spécifique du registre d'état (le bit OF) est mis à 1 pour indiquer le débordement. • Flags = Drapeaux, Les drapeaux sont des indicateurs suite à des opérations arithmétiques ou logiques. • Le registre d'état du 8088 est formé par les bits suivants : Remarque : X : bit non utilisé CF : (Carry Flag) • Bit indicateur au retenue, positionné à 1 lors d’un retenu dans une opération d’addition (ADD) ou soustraction (SUB) (voir partie : 1.2. Unité de commande).
  • 3. PF : (Parity Flag) • Parité : si le résultat de l'opération contient un nombre pair de 1 cet indicateur est mis à 1, sinon zéro. AF : (Auxiliary Flag) • Demie retenue : Ce bit est égal à 1 si on a un retenue du quarter de poids faible dans le quarter de poids plus fort. ZF : (Zero Flag) • Zéro : Cet indicateur est mis à 1 quand le résultat d'une opération est égal à zéro. Lorsque l'on vient d'effectuer une soustraction (ou une addition). (voir partie : 1.2. Unité de commande). SF : (Sign Flag) • SF est positionné à 1 si le bit de poids fort du résultat d'une addition ou soustraction est 1 ; sinon SF=0. • SF est utile lorsque l'on manipule des entiers signés, car le bit de poids fort donne alors le signe du résultat. (voir partie : 1.2. Unité de commande). OF : (Overflow Flag) • Débordement : si on a un débordement arithmétique ce bit est mis à 1, c-a-d le résultat d'une opération excède la capacité de l'opérande (registre ou case mémoire), sinon il est à 0. DF : (Direction Flag) • Auto Incrémentation/Décrémentation : utilisée pendant les instructions sur des blocs de données (chaînes de caractères, tableaux, …) pour auto incrémenter ou auto décrémenter le SI et le DI. IF : (Interrupt Flag) • Masque d'interruption : pour masquer les interruptions venant de l'extérieur ce • bit est mis à 0, dans le cas contraire le microprocesseur reconnaît l'interruption de l'extérieur. TF : (Trap Flag)
  • 4. Piège : pour que le microprocesseur exécute le programme pas à pas. Les registres segment • Le 8088 a quatre registres segments de 16 bits chacun : CS (Code Segment), DS (Data Segment), ES (Extra Segment) et SS (Stack Segment). • Ces registres sont chargés de sélectionner les différents segments (parties) de la mémoire en pointant sur le début de chacun d'entre eux. • Chaque segment de la mémoire ne peut excéder les 65535 octets. Registre CS : (Code Segment) o Il pointe sur le segment qui contient les codes des instructions du programme en cours. o Si la taille du programme dépasse les 65535 octets alors on peut diviser le code sur plusieurs segments (chacun ne dépasse pas les 65535 octets) et pour basculer d'une partie à une autre du programme il suffit de changer la valeur du registre CS et de cette manière on résout le problème des programmes qui ont une taille supérieure à 65535 octets. Registre DS : (Data Segment) o Le registre segment de données pointe sur le segment des variables globales du programme, bien évidemment la taille ne peut excéder 65535 octets. S o Si on a des données qui dépassent cette limite, on utilise la même astuce citée dans la remarque précédente mais dans ce cas on change la valeur de DS. Registre ES : (Extra Segment) o Le registre de données supplémentaires ES est utilisé par le microprocesseur lorsque l'accès aux autres registres est devenu difficile ou impossible pour modifier des données, de même ce segment est utilisé pour le stockage des chaînes de caractères. Registre SS : (Stack Segment)
  • 5. Le registre SS pointe sur la pile : la pile est une zone mémoire ou on peut sauvegarder les registres ou les adresses ou les données pour les récupérer après l'exécution d'un sous programme ou l'exécution d'un programme d'interruption.  En général il est conseillé de ne pas changer le contenu de ce registre car on risque de perdre des informations très importantes (exemple les passages d'arguments entre le programme principal et le sous programme). Gestion de la mémoire: Introduction • L'espace mémoire adressable (1 Méga Octet = 220 Octets, 20 broches du bus d'adresse) du 8088 est divisé en quatre segment logiques allant jusqu'à 64 Kilo Octets chacun. • L'accès à ces espaces est direct et simultané, or Le compteur de programme est de 16 bits donc la possibilité d'adressage est de 216 Octet= 64 Kilo Octet (Ce qui ne couvre pas la totalité de la mémoire), alors on utilise deux registres pour indiquer une adresse au processeur. • Chaque segment débute à l'endroit spécifié par le registre segment. Le déplacement (offset) à l'intérieur de chaque segment se fait par un registre de décalage qui permet de trouver une information à l'intérieur du segment. o IP est un registre de déplacement dans le segment code (CS). o SP est un registre de déplacement dans le segment pile (SS). o SI et DI sont des registres de déplacement dans les segments de données (DS) et segment de données supplémentaires (ES).
  • 6. Adresse physique (segmentation de la mémoire) • La mémoire est divisée en segments de taille 64 Ko. • Chaque segment contient un type différent d’information : o Segment Code, contient les instructions d’un programme, o Segment Données, contient les données d’un programme, o Segment Extra, contient des données supplémentaires (utilisé dans des données blocs : chaînes de caractères, tableaux, …), o Segment Pile, contient le contenu des registres interne AX, BX, CX et DX lors d’une interruption. • Chaque segment est adressé par deux registres : o Registre Segment ou Registre Base : pointe sur le début du segment (Base), o Registre de décalage : pointe sur l’information à l’intérieur du segment (Offset). • Ainsi, L’adresse physique = Base * 16 + Offset. Remarque : • o L’adresse segment (Base) et l’adresse de déplacement (Offset) sont des adresses sur 16 bits (4 chiffres hexadécimaux), adressées par des registres sur 16bits. o Tandis que l’adresse physique est une adresse sur 20 bits (5
  • 7. chiffres hexadécimaux), adressées par le bus d’adresse de 20 broches. • Le schéma de la figure suivante illustre la formation d'une adresse 20 bits à partir du segment et du déplacement sur 16 bits :