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 :

La segmentation de la mémoire


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut La segmentation de la mémoire
    Salut,
    j'ai lu les tutoriels de programmation Assembleur et dont la segmentation de la mémoire et je me demande si les segment ne sont pas toujours en chevauchement de 16 octets, c.à.d est que les segments peuvent se chevaucher aprés 16 octets (car le segment peut avoir un contenu supérieur à 16 OCTETS et que le prochain va ecraser ses infos)
    Et tout ça dans le chevauchement partiel bien sûr !
    Merci de m'éclairer

  2. #2
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    Hein ?
    Un segment Intel en 16 bits c'est une addresse de base, qu'il faut multiplier par 16, c'est tout, et la limite est de 2^16 octets.
    C'est tout, ensuite, les chevauchements et tout, c'est purement mécanique, il n'y a rien de particulier, sinon qu'il faut éviter de créer des segments se chevauchant.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    L'adresse d'un segment est par nécessité un multiple de 16.

    Pour ce qui est du chevauchement attention à cela :
    - es = 0x0010, di = 0xFFFE
    => chevauchement réel (d'ailleurs chevauchement réel quelque soit la valeur de 'es'
    Ce segment va de 0x100 à 0x10100 (0x100+0x10000)

    - es = 0x0011, di = 0xFFFE
    Ce segment va de 0x110 à 0x10110 (0x110+0x10000)

    Les octets de 0x110 à 0x10100 sont communs aux deux segments mais il n'y a pas de chevauchement mais un recouvrement.

    C'est une confusion fréquente que d'imaginer que les segments sont des plages de 0x10000 octets consécutifs et non recouvrés.

    Il y a addition du segment (*16) et de l'adresse et non pas composition d'une adresse longue (4 octets) avec les deux.

  4. #4
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Hello,

    Moi aussi je vais y aller de mon grain de sel

    Les processeurs 8086/8088 avaient un bus d'acces a la RAM sur 20 bits
    (c'est toujours gere pareil sur les processeurs actuels en mode reel)
    comme le processeur n'avait que des registres 16 bits, les ingenieurs d'Intel
    (da dou da dam !) ont eu la "bonne" idee d'utiliser 2 registres pour adresser
    ces 20 bits.

    Le resultat est un registre de Segment 16 bits + un registre d'adresse 16 bits
    le registre d'adresse comporte les bits 0 a 15
    Le registre de segment comporte les bits 4 a 19

    Il y a donc un chevauchement entre les bits de segment et d'adresse.
    Exemples :

    0000:1234h
    0123:0004h
    0023:1004h
    0010:1134h
    0111:0124h

    pointent tous la meme adresse

    car :
    00000 + 01234 = 01234h
    01230 + 00004 = 01234h
    00230 + 01001 = 01234h
    01110 + 00124 = 01234h

    a+ Francois

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    'forthman' tes précisons sont comme les miennes : imbuvables !
    Cela montre a quel point le monde eut été meilleur si Billou était resté dans son garage et que l'informatisation se soit faite avec des gens sérieux, intelligents et cultivés (de chez Motorola par exemple ou du Plan Calcul).

    Vous avez remarqué que 'Sabrina' ne répond pas, nous avons du l'assommer.

    Bonsoir à tous

  6. #6
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    il manque une precision aux informations ci dessus.

    sur tout les processeurs à partir du 286, il y a une partie des segments qui est cachée, cette partie est un descripteur de segment, identique à celui du mode protegé, (c'est le meme, exactement le meme), et c'est initialisé pour pouvoir addresser en mode reel par emulation de type V86.
    donc, le mode reel n'existe plus, il ne subsiste qu'une emulation qui permet aux vieux programmes devenus inutiles, obsoletes et demodés, de tourner encore sur les becanes.
    ces descripteurs sont en fait invisibles et omnipresents, ils servent à controler la memoire "infinie" d'un X86.
    une instruction "undocumented" permet d'ailleur de changer les valeurs de tout les registres internes du processeur, en une seule instruction, et une centaine de cycles d'horloge. LOADALL. deux versions de cette instruction existent, 286 et 386, les autres processeurs sont censés l'emuler.

    bon, en gros l'adressage chez intel, c'est tordu, mais attention, ça permet aussi tout un tas de tricks, des astuces impossibles autrement.

    hummmm, encore des explications indigestes, si sabrina revient, c'est qu'elle est passionnéee, cool, une femme qui code en asm.... elle serait pas la premiere en tout cas...

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Wie,
    Citation Envoyé par Stabia Voir le message
    'forthman' tes précisons sont comme les miennes : imbuvables !
    Cela montre a quel point le monde eut été meilleur si Billou était resté dans son garage et que l'informatisation se soit faite avec des gens sérieux, intelligents et cultivés (de chez Motorola par exemple ou du Plan Calcul).

    Vous avez remarqué que 'Sabrina' ne répond pas, nous avons du l'assommer.

    Bonsoir à tous
    Ne pas confondre M$ et l'architecture des procs d'Intel.
    Si les cons volaient, il ferait nuit à midi.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    L'ennui 'Edfed' c'est qu'il y a un vieux et obsolète programme en mode réel qui s'appelle le 'boot' dont vous conviendrez qu'il serait difficile de l'oublier.
    Un jour je suis tombé sur un site qui référençait les instructions cachées des Pentium, hélas j'ai perdu l'adresse, si quelqu'un la connais je suis preneur.

    'Intel' c'est tordu parce que les gens de chez Intel le sont et qu'ils n'ont - c'est une affirmation sans preuve mais j'en suis convaincu - aucun horizon culturel ; "microsoft" c'est pire leur fond culturel c'est un galimatias de matérialisme primaire, de sectarisme protestant, et d'une fois dans la post-Histoire. J'ai discuté avec un ami archéologue Italien qui faisait parti de l'escorte de Billou lorsqu'il est venu à Pompéi, la crasse intellectuelle de ce type est terrifiante.

    Chez Intel comme chez Microsoft (et les deux sont liés) la logique est principalement financière, avec comme corollaire l'évolution par couches successives. Je crois que la "logique cablée" de chez Motorola reste supérieure.

  9. #9
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Tant mieux si tu te prends pour un Dave Cutler en puissance, qu'est-ce que tu veux qu'on te dise ?
    :wq

  10. #10
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    le boot de 512 octets, parlons en , celui là n'a vraiment pas l'obligation d'etre en mode reel.
    par contre, le boot du bios, il doit etre en mode reel.
    mais le bios pourrait tres bien etre en mode protegé.
    et meme, le bios pourrait etre un vrai OS complet.
    avec tout ce qu'il faut pour lire des MP3 sur une clé usb.
    lire des videos et surfer sur le net.
    tout ça pourrait etre fait par le BIOS de 1 mega octet, car la memoire flashrom du bios mesure 1 mega octet de nos jours.

  11. #11
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Bien deja il sait lire les clef USB car il peut booter dessus

    a+ Francois

  12. #12
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gio,

    On a trouvé le nouveau sauveur : Stabia.

    Quand tu dis que Intel et M$ sont liés, c'est faux, et soit tu le sais effectivement, et tu es de mauvaise foi, soit tu l'ignores, et tu devrais te contenter de parler de ce que tu sais.

    Je ne discuterai pas de la culture de billou, sur ce point, je te rejoins assez, mais sur Intel, je pense que tu t'avances beaucoup.
    Pour rappel, historiquement, l'architecture des 8086/88 a principalement été ainsi définie pour diminuer notablement le prix de fabrication des processeurs (à l'époque, il ne suffisait pas de 50€ pour avoir un processeur "de course", ce que sont les processeurs modernes, même de bas de gamme, par rapport à ce dont on disposait alors), et c'est donc une démarche qui ne saurait être qualifiée de "tordue".
    Si les cons volaient, il ferait nuit à midi.

  13. #13
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    intel sans m$ n'aurai jamais obtenue cette supprematie.
    le truc, c'est qu'il y a eu un accord entre intel, m$ et ibm pour faire des machines, ibm etant quand meme le plus puissant des fabricants. donc le roi qui decide de la reaction des clients.
    sans cette confrerie du logiciel, c'est apple et motorola qui auraient gagnés.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    'edfed' je suis d'accord avec vous mais les réalités sont autres, c'est sur que si l'on nous demandait de concevoir une nouvelle architecture que le PC nous ne referions pas le même ! ni un Mac non plus, peut être un Atari ?

    'dapounet' ne sachant pas qui est Dave Cutler j'ai un peu du mal à répondre à votre message.

    'droggo' l'agressivité est généralement inutile et contre-productive, et affirmer que "Intel" et "Microsoft" ne sont pas liés est une réelle sotise ; sans le succès commercial de "Microsoft" jamais les mauvais produits de "Intel" ce seraient imposés : d'ailleurs ils sont bannis dans un certain nombre de domaine.
    Sans la montée en puissance très calibrée des processeurs "Intel" pour que "Microsoft" n'ait pas trop de chose à ré-écrire peut être que la suprématie de Billou serait compromise.
    Et tout ceci n'est pas vrai uniquement pour les processeurs, voir par exemple la norme USB3 en préparation ...

    Que la logique de "Intel" soit l'économie (des gagnes petits en quelques sorte) c'est bien évident, heureusement que B. Palissy ou Pasteur ne pensaient pas ainsi.

    Un 68000 coûtait un peu moins cher qu'un 80186, ensuite le rapport devint défavorable à Motorola, mais qu'en serait-il advenu si IBM avait agit autrement ? ou si les gros bataillons financiers de la côte Est n'avaient décidés que les Hyppies de la côtes Ouest avaient assez fait les c.

Discussions similaires

  1. mémoire paginée segmentée
    Par amazircool dans le forum Administration système
    Réponses: 11
    Dernier message: 01/01/2008, 23h51
  2. sémaphores et segments de mémoire
    Par djed2 dans le forum Linux
    Réponses: 4
    Dernier message: 21/03/2007, 10h44
  3. Allouer un segment de mémoire avec "GNU GCC Compiler&qu
    Par damien99 dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 22/06/2006, 23h18

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