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 :

Notions de segment et d'offset


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 58
    Points
    58
    Par défaut Notions de segment et d'offset
    Bonjour à tous,

    J'aurai quelques questions à poser concernant l'assembleur et surtout la mémoire car c'est assez trouble pour moi !

    *Comment vous représentez-vous la mémoire interne de l'ordinateur ? J'ai du mal à comprendre cette partie

    *Qu'est ce qu'un segment et un offset ?

    *Est-ce que l'adresse de segment est toujours la même ?

    *Débute-elle toujours au premier octet du segment ou on peut pointer vers un endroit quelconque?


    *Peut-on utiliser tous les segments de mémoire ou certains sont réservés à un usage spécifique (segment pour l'affichage vidéo par exemple) ?

    merci pour vos éclaircissements

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Salut

    Il n'y a probablement pas de réponse universelle car le fonctionnement de différentes plateformes peut être totalement "exotique" ou du moins, avoir des particularités. Donc de manière générale:

    La mémoire peut se représenter comme une sorte de tableau d'octets à une dimention. Tu peux donc stocker un octet dans une case, une valeur sur 16 bits dans deux cases et ainsi de suite. Tu trouvera un complément d'explications sur certains termes qui te troublent dans la FAQ: http://asm.developpez.com/faq/?page=fg_voc

    Est-ce que l'adresse de segment est toujours la même ?
    En regardant les définitions d'offset et de segment (lien précédent) tu vera que ta question n'a pas de sens... Peut être voulais-tu dire "est-ce que toutes les données sont dans le même segment?", auquel cas la réponse est non.

    Débute-elle toujours au premier octet du segment ou on peut pointer vers un endroit quelconque?
    On utilise un offset pour se déplacer dans le segment.

    Peut-on utiliser tous les segments de mémoire ou certains sont réservés à un usage spécifique (segment pour l'affichage vidéo par exemple) ?
    Celà dépends de ce sur quoi tu travaille. Tu as toujours une partie réservée (ne serait-ce que pour les vecteurs d'interruption, etc.) mais la partie "utilisateur" dépends de la machine que tu programme.

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Attention segment+offset c'est une conception de Intel.
    A ma connaissance par exemple avec Motorola cela n'existe pas c'est linéaire il me semble

    Citation Envoyé par SimpleMe
    *Peut-on utiliser tous les segments de mémoire ou certains sont réservés à un usage spécifique (segment pour l'affichage vidéo par exemple) ?

    merci pour vos éclaircissements
    C'est une conception purement Intel ( t'inquiète pas je n'arriverai jamais à piger moi aussi)
    Au sein du 8086 par exemple tu as 4 segments ES ( Extra Segment ),DS ( Data Segment ),CS ( Code Segment ),SS ( Stack Segment )
    Ces segments fonctionnent de pair avec certains registres..

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Il ne me semble pas vraiment que la segmentation soit réservée à Intel. Intel a effectivement une manière propre de mélanger la pagination aux segments, mais il me semble que ce sont des concepts qu'on retrouve ailleurs.

  5. #5
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Au sein du 8086 par exemple tu as 4 segments ES ( Extra Segment ),DS ( Data Segment ),CS ( Code Segment ),SS ( Stack Segment )
    Juste pour clarifier une ambiguïté, ES/DS/CS/SS ne sont pas des segments mais des registres de segments, dont le but est de pointer vers un segment particulier utilisé par le programme en cours d'exécution.

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


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

Discussions similaires

  1. Calculer l'adresse réelle à partir de segment:offset
    Par jacko842 dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 22/11/2009, 20h06
  2. Qu'est ce qu'un offset
    Par gtr dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/12/2002, 08h53
  3. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  4. [TASM] Déclarer le segment de pile
    Par cipher dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 01/10/2002, 03h58
  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