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

Assembleur Discussion :

Structure de la mémoire


Sujet :

Assembleur

  1. #1
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 42
    Par défaut Structure de la mémoire
    Voilà j'aimerais m'éclairsir sur la mémoire en mode réel,
    Si je comprend bien sous dos on peut utiliser maximum 1Mo de notre ram.
    Mais si j'ai bien compris on possède seulment de 0 a 640K de mémoire.
    Ensuite on a 128K pour la vidéo (je comprend pas pk on utilise la RAM pour la vidéo au lieu d'utiliser la Vram de la carte graphique).
    Et le reste pour les interuptions du bios qui je suppose contient le 10h,13h(interruptions bios) et les ports tels que (378h port rs232 com1....)

    Donc au final notre ram programme est que de 640K

    Peut etre que je n'i rien compris c'est pour sa que je pose la question.

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    il y a efectivement 1 mo de mémorie adressable de 0:0 à FFFF:0. Je ne connait pas tout par coeur mais je peux au moin te donner ca de tête :

    0:0 - 40:0 : Table des vecteurs d'interruptions
    40:0 - 50:0 : Bios Data Area
    A000:0 - C000:0 : VGA/EGA/CGA ou modes textes

    en fait pour ecrire dans la vram tu dois ecrire dans la ram. par exemple dans le mode video bios 13h, tu accede a la VRAM en ecrivant à l'adresse A000:0. Pour les autres modes c'est plus complqiué, parce que le "mappage" de la mémoire n'est pas forcement linéaire

  3. #3
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 42
    Par défaut
    merci

  4. #4
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 380
    Billets dans le blog
    1
    Par défaut
    Pour t'apporter une réponse plus précise :

    Voici les espaces d'adresses :
    Segment 0000 : Table d'interruptions (1 Ko)
    Segment 0040 : Table des variables du BIOS
    Segment 0060 : Espace disponible pour le DOS (environ 640 Ko)
    Segment A000 : Espace réservé au mode graphique des cartes EGA / VGA (64 Ko)
    Segment B000 : Espace réservé aux cartes graphiques monochromes (MDA, Hercules, EGA sur moniteur mono, VGA en mode mono) (32 Ko)
    Segment B800 : Espace réservé aux cartes CGA et aux cartes graphiques EGA et VGA en mode texte couleur (32 Ko)
    Segment C000 : Espace parfois libre, parfois occupé par des extensions ROM ou utilisé par EMM386 pour y mapper de la mémoire supérieure (UMB) ou un segment de mémoire EMS (192 Ko)
    Segment F000 : Le BIOS lui-même (64 Ko)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 21
    Par défaut
    Merci cela va me servir a moi aussi

    seb.

  6. #6
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    D'ailleurs, les 640 Ko de mémoire dont on dispose, c'est bien ce qu'on appel courament la mémoire conventionelle ?
    Autre question : Si on exécute la commande mem sous dos, il nous donne les caractéritiques de la mémoire. Il parle de HMA et XMS, qu'est ce que c'est ?

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Par défaut
    Mais si j'ai bien compris on possède seulment de 0 a 640K de mémoire.
    C'est effectivement la taille de la mémoire physique que tu trouves sur une carte mère dénuée de barrette supplémentaire. Si tu rajoutes des barrettes (SD, DDR etc.), celles ci sont mappées à partir du premier méga (adresse physique 0x100000).

    Ensuite on a 128K pour la vidéo (je comprend pas pk on utilise la RAM pour la vidéo au lieu d'utiliser la Vram de la carte graphique).
    On utilise bien la mémoire vidéo de la carte graphique dans cet espace et pas les blocs RAM conventionnelle dont je parle plus haut. Tout est question de mappage mémoire. Ceci date du temps préhistorique ou les cartes graphiques ne possédaient pas plus de 128K de mémoire. Pour rester compatible, cet espace est toujours réservé à la mémoire vidéo pour les modes les plus basiques. Pour des modes plus gourmands et exploitant les capacités des dernières cartes graphique on peut mapper la mémoire vidéo au dela du premier méga.



    Il parle de HMA et XMS, qu'est ce que c'est ?
    Ce sont des systèmes qui permettent d'accéder aux zones hautes de la mémoire (au dela de 1Mo) tout en restant en mode réel du coté applicatif. Ceci est géré par le pilote HIMEM.SYS qui propose des services (interruption soft) pour faire des transferts entre mémoire conventionnelle et mémoire haute. Pour faire ceci le pilote prépare une GDT, une IDT et commute en mode protégé, effectue le transfert et revient en mode protégé (extrèmement lourd en nombre de cycles ...)

    Il est possible d'interroger himem pour connaitre la taille mémoire XMS (extended) disponibles en nombre de page et d'extrapoler la taille en octets (ce que fait la commande mem sous DOS).



    golem
    +++

  8. #8
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 42
    Par défaut
    merci de votre aide, j'y vois plus clair

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

Discussions similaires

  1. Structure et adresse mémoire
    Par taraa dans le forum Débuter
    Réponses: 2
    Dernier message: 01/01/2011, 17h55
  2. Structure de la mémoire
    Par Trademark dans le forum Débuter
    Réponses: 9
    Dernier message: 04/01/2010, 14h52
  3. Alignement mémoire pour les structures.
    Par SpaceToto dans le forum Visual C++
    Réponses: 4
    Dernier message: 14/09/2006, 11h15
  4. Réponses: 6
    Dernier message: 24/03/2006, 18h24
  5. Je recherche un composant Tree non visuel, structure mémoire
    Par bambino3996 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 05/09/2005, 17h03

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