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 :

Chargement d'un fichier binaire en mémoire


Sujet :

Assembleur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut Chargement d'un fichier binaire en mémoire
    Discussion déplacée depuis le forum C vers le forum Assembleur.

    Bonjour,

    Alors voila,...je me pose la question de savoir comment une fois un fichier source quelconque a été compilé et linké donc, un fichier objet généré,..est implanté en mémoire.

    Ce que je veux dire c'est par quel processus le fichier objet qui a un certain format (binaire) est transformé en une suite de 0/1 mais cette fois, sous forme de tension puisque les cellules mémoires ne sont que des suites de registres de 1 bit et que c'est sous forme de tensions (par exemple 0V et 3.3 V) que cela est géré en mémoire ou dans le micro.

    Remarque:
    Je sais que c'est le loader qui va charger l'executable en mémoire mais ça ne me dit pas quel est le processus utilisé pour transformer le contenu d'un fichier binaire en une suite de tensions associées à chacun des bits de l'éxécutable.

    Merci pour vos réponses

  2. #2
    Membre éclairé
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 471
    Points : 831
    Points
    831
    Par défaut
    Bonjour tonycalv

    Ton post n'est pas au bon endroit. Ici, c'est un forum sur le langage C.

    je ne pense que tu puisse y trouver une réponse
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Pour faire simple et court :
    • Un fichier exécutable est composé de commandes assembleur
    • une commande assembleur correspond à un code (ou plusieurs) Hexadécimal
    • ce code hexadécimal et aussi un nombre binaire
    • ce nombre binaire est envoyé dans le processeur (je fais court ici)
    • le processeur est un agencement de transistors
    • un transistor peut être utilisé comme un simple interrupteur
    • donc le code binaire envoyé va fermer et ouvrir certains circuits dans le µP.
    • Il sera alors considéré comme une instruction
    • le code suivant sera considéré comme une valeur
    • et ainsi de suite...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut Thème:Comment charger un fichier binaire
    Bonjour,
    Merci pour ta réponse ....
    Mais en fait je connais bien le processus que tu viens de décrire mais ce qui me manque c'est l'étape entre le moment ou un 'mot' binaire provenant du fichier executable est envoyé en mémoire pour être stocké en mémoire et le moment ou cette suite de bits constituant ce 'mot' binaire est transformé en cette même suite de bits mais cette fois sous forme de tensions correspondante..

    Je sais que je me pose un peu trop de questions philosophiques....mais bon..c'est un peu dans ma nature..

    Merci..

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Comme dit plus haut, ta réponse n'a pas de rapport avec le langage C. Ce n'est pas le sous-forum où tu as le plus de chance de trouver ta réponse. Peut-être que le forum hardware sera plus adapté. La question en fait n'est pas du tout une question de programmation mais d'électronique. La réponse sera probablement spécifique à chaque processeur (ou famille de ~).

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    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 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Hello,

    Citation Envoyé par tonycalv Voir le message
    Alors voila,...je me pose la question de savoir comment une fois un fichier source quelconque a été compilé et linké donc, un fichier objet généré,..est implanté en mémoire. Ce que je veux dire c'est par quel processus le fichier objet qui a un certain format (binaire) est transformé en une suite de 0/1 mais cette fois, sous forme de tension puisque les cellules mémoires ne sont que des suites de registres de 1 bit et que c'est sous forme de tensions (par exemple 0V et 3.3 V) que cela est géré en mémoire ou dans le micro. Je sais que c'est le loader qui va charger l'executable en mémoire mais ça ne me dit pas quel est le processus utilisé pour transformer le contenu d'un fichier binaire en une suite de tensions associées à chacun des bits de l'éxécutable.
    C'est l'inconvénient de se représenter les choses comme des objets car, en réalité, il n'y a rien de tel dans un ordinateur. Le « loader » est en soi un logiciel ordinaire, au même titre que l'exécutable qu'il cherche à charger, et qui a lui-même été chargé à l'avance, soit par d'autres programmes encore avant lui, soit par les fabricants de la machine, en ROM.

    Ça veut dire que ce n'est pas le loader en soi qui charge ton exécutable mais qu'il est simplement interprété par ton micro-processeur qui — lui — va aller chercher les informations dont il a besoin en fonction des directives données dans le programme du loader.

    Après, si tu te demandes par quel miracle le micro-processeur est capable de faire cela, alors fais une recherche avec « architecture des ordinateurs » pour voir quelles sont les grandes lignes qui régissent les relations entre le micro-processeur et les composants qui l'entourent, notamment via le bus d'adresse et le bus de données.

  7. #7
    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
    quel est le processus utilisé pour transformer le contenu d'un fichier binaire en une suite de tensions associées à chacun des bits de l'éxécutable.
    c'est le processus de copie/lecture/ecriture qui permet d'interpreter les données numeriques, et permet aux circuits logique de les cpier/lire/ecrire.

    ce processus est effectué par le transistor qui va etre plus ou moins conducteur en fonction de la tension de gate.


    Après, si tu te demandes par quel miracle le micro-processeur est capable de faire cela, alors fais une recherche avec « architecture des ordinateurs » pour voir quelles sont les grandes lignes qui régissent les relations entre le micro-processeur et les composants qui l'entourent, notamment via le bus d'adresse et le bus de données.
    pour ma part, je te conseillerais aussi de faire de l'electronique et de l'electronique numerique si tu veux mieux comprendre comment ça fonctionne. tu veras, c'est super sympa comme domaine. t'aimes les maths?

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 352
    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 352
    Points : 20 359
    Points
    20 359
    Par défaut
    Salut,

    Citation Envoyé par tonycalv Voir le message
    Ce que je veux dire c'est par quel processus le fichier objet qui a un certain format (binaire) est transformé en une suite de 0/1 mais cette fois, sous forme de tension puisque les cellules mémoires ne sont que des suites de registres de 1 bit et que c'est sous forme de tensions (par exemple 0V et 3.3 V) que cela est géré en mémoire ou dans le micro.

    Remarque:
    Je sais que c'est le loader qui va charger l'executable en mémoire mais ça ne me dit pas quel est le processus utilisé pour transformer le contenu d'un fichier binaire en une suite de tensions associées à chacun des bits de l'éxécutable.
    tout passe par le microprocesseur dans un système informatique
    le CPU ça fonctionne de la sorte.
    Un CPU c'est un composant éléctronique qui permet la VLSI, Very Large Scale Integration ( http://en.wikipedia.org/wiki/Very-la...le_integration )
    Pour ce qui est de l'intégration à très large échelle,sur le silicium du composant qui matérialise le CPU, il y a des millions de transistors, portes logiques NAND,NOR etc..
    c'est comme ça que tu peux traiter l'information de manière physique avec du courant électrique.


    Brièvement pour un CPU non multitâche comme le 8086,

    -dans le CPU il y a un quartz qui te permet de cadencer la fréquence du CPU; sans ce quartz tu ne peux pas faire fonctionner le CPU à intervalles réguliers
    C'est le mouvement d'horloge interne

    -ensuite avec ce mouvement d'horloge interne, les données sur les bus d'adresses qui sont reliés à la R.A.M. ( ou R.O.M. ) en quelque sorte sont lus de manière fréquente.
    Mais je ne suis pas certain que ça se fasse directement , le CPU passe peut-être aussi par le Programable Interrupt Controller ou PIC.
    Il faut vérifier..

    En éléctronique ce sont les bascules qui permettent de faire transiter du courant ou non à intervalles réguliers.Il y a des bascules J,K,T.
    en anglais c'est une latch http://en.wikipedia.org/wiki/Latch_%28electronics%29
    -dans le CPU il y a des circuits intégrés réduits à très petites échelles c'est ça le principe de la Very Large Scale Integration
    -le CPU il fonctionne de la sorte : lecture des données sur les bus, incrémentation du Compteur d'instruction , traitement du code opération par le décodeur d'instructions et l'ALU ( http://en.wikipedia.org/wiki/Arithmetic_logic_unit)

    Pour ce qui est des cellules mémoires dans une RAM, ce sont ni plus ni moins des diodes miniaturisées à très grande échelle; une diode c'est un semi-conducteur qui ne laisse passer le courant que dans un sens
    Pour ce qui est du fichier binaire dont tu parles , le CPU est obligé de suspendre son mode de fonctionnement on appelle ça l'appel d'interruptions
    Grâce au PIC il peut appeler le contrôleur de disque dur ou disquette, positionner les têtes de lectures sur un secteur disque et effectuer l'opération de lecture

  9. #9
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 352
    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 352
    Points : 20 359
    Points
    20 359
    Par défaut
    Citation Envoyé par edfed Voir le message
    ce processus est effectué par le transistor qui va etre plus ou moins conducteur en fonction de la tension de gate.
    oui le transistor me permet d'écouter le top50

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    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 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    oui le transistor me permet d'écouter le top50
    Ne plaisante pas : il y a des journalistes qui ont fait une brève télévisée pour les soixante ans du transistor, et qui ont fait l'hommage du récepteur radio et pas du semi-conducteur. Et ce, sur la première chaîne nationale. Ça en a consterné plus d'un.

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/06/2011, 18h19
  2. Réponses: 3
    Dernier message: 17/06/2011, 10h58
  3. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 10h38
  4. fichier binaire ou texte
    Par soussou dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2002, 14h39

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