IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

8086 Recouvrement de segment


Sujet :

x86 16-bits Assembleur

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut 8086 Recouvrement de segment
    bonjour , je suis étudiant en ingénierie des systèmes d'information et des logiciels.
    Dans notre module d'architecture nous étudiant le 8086 et j'ai une question a propos de ce dernier !

    Comment peut il gérer le recouvrement total des segment ?

    j'ai essayer de chercher sur le net mais sans réponse !
    Merci !

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Bonjour,

    Comment peut il gérer le recouvrement total des segment ?
    C'est-à-dire ? Ta question est beaucoup trop vague.

    Si tu te demandes comment fonctionnent le système de segments du 8086 (et, donc, des suivants), le 8086 a une architecture 16 bits, mais un bus d'adresse sur 20 bits. Pour le gérer, on utilise DEUX registres de 16 bits, dont l'un est décalé de 4 bits (soit 16 points) par rapport au premier. Et on additionne les deux :

    Code TXT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        1234     Offset
    +  ABCD      Segment
    -----------
       ABF04

    Ainsi tu peux placer un segment n'importe où dans la mémoire mais avec une granularité de 16 octets, puis accéder tranquillement à une fenêtre de 64 ko depuis cette position.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse !
    alors voici ma question : le phénomène de chevauchement des segment se passe soit partiellement soi totalement , ce que je veux savoir est : comment le processeur fait la différence entre 4 segment qui se chevauchent complètement (totalement) !
    (excuser moi je en architecture et assembleur donc mes connaissance sont un peu limité ^^)

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 193
    Points : 277
    Points
    277
    Par défaut
    Si par chevauchement on entend partager une même zone d'adresse,c'est un défaut qu'il faut éliminer.
    On ne peut pas mélanger du code,des data,la pile...
    Chaque segment ayant une taille,on évite le chevauchement en limitant la taille des segments ou en tenant compte de la taille par défaut si elle existe.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par bobmaza Voir le message
    Merci pour ta réponse !
    alors voici ma question : le phénomène de chevauchement des segment se passe soit partiellement soi totalement , ce que je veux savoir est : comment le processeur fait la différence entre 4 segment qui se chevauchent complètement (totalement) !
    Il ne la fait pas : c'est le même endroit en mémoire.

    Tu confonds deux choses, à mon avis. Les segments du mode réel 16 bits définis depuis le 8086, et ceux du mode protégé qui correspondent à des plages de longueur et de position arbitraire. Laisse-les de coté pour le moment.

    Comme on te l'a dit, le système de segments est un moyen de gérer un bus de 20 bits avec des registres de 16. Les segment et offset sont additionnés comme dans mon message ci-dessus pour former l'adresse réelle en mémoire.

    Autrement dit 0010:0005, 0002:00E5 et 0000:0105, par exemple, correspondent exactement au même octet en mémoire.

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    oui voilà le partage de la même zone memoire !!
    oui je sais qu'il doit etre éviter mais comment le processeur gère ce genre de cas , c'est pour un travail a la fac j'ai chercher et j'ai rien trouver ! merci d'avance

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par bobmaza Voir le message
    oui voilà le partage de la même zone memoire !!
    oui je sais qu'il doit etre éviter mais comment le processeur gère ce genre de cas , c'est pour un travail a la fac j'ai chercher et j'ai rien trouver ! merci d'avance
    Lis mes posts en entier ! Tout ce que tu veux savoir se trouve déjà dedans.

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup , au fait au moment de ma réponse ta poster la tienne car quand j' ai actualisé la tienne n'été pas affiché , Merci beaucoup ! j'ai tout compris !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion segment et recouvrement
    Par kuntagp dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 08/01/2014, 20h37
  2. [8086] Pourquoi la taille de segment est-elle de 64 ko ?
    Par gza.gza dans le forum Assembleur
    Réponses: 3
    Dernier message: 28/02/2007, 21h24
  3. [8086] Adresse du code segment et data segment ?
    Par sali dans le forum Assembleur
    Réponses: 1
    Dernier message: 14/05/2005, 22h42
  4. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  5. angle entre 2 segments
    Par tane dans le forum Mathématiques
    Réponses: 4
    Dernier message: 25/09/2002, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo