Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur
Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/04/2012, 13h02   #1
tonycalv
Invité de passage
 
Inscription : février 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 34
Points : 3
Points : 3
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
tonycalv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2012, 13h32   #2
bpy1401
Membre chevronné
 
Avatar de bpy1401
 
Homme Patrick
Ingénieur développement logiciels
Inscription : mars 2003
Messages : 440
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Eure (Haute Normandie)

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

Informations forums :
Inscription : mars 2003
Messages : 440
Points : 792
Points : 792
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
bpy1401 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2012, 19h58   #3
gerald3d
Expert Confirmé
 
Avatar de gerald3d
 
Homme Gérald
Conducteur de train
Inscription : février 2008
Messages : 1 368
Détails du profil
Informations personnelles :
Nom : Homme Gérald
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : février 2008
Messages : 1 368
Points : 2 536
Points : 2 536
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...
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits

Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+)

Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1
Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.26

contact jabber : gerald3d@jabber.tuxfamily.org
gerald3d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 12h41   #4
tonycalv
Invité de passage
 
Inscription : février 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 34
Points : 3
Points : 3
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..
tonycalv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 15h46   #5
Bktero
Expert Confirmé Sénior
 
Avatar de Bktero
 
Ingénieur systèmes embarqués
Inscription : juin 2009
Messages : 1 707
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur systèmes embarqués
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 707
Points : 4 186
Points : 4 186
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 ~).
__________________
Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseigner ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a

Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^

Pour vos problèmes d'embarqué, utilisez le forum dédié !
Bktero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 18h05   #6
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 087
Points : 11 087
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.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 19h21   #7
edfed
Membre chevronné
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 471
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 471
Points : 619
Points : 619
Citation:
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.


Citation:
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?
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 11h15   #8
Mat.M
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 445
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 : 4 445
Points : 5 864
Points : 5 864
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
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/10/2012, 11h19   #9
Mat.M
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 445
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 : 4 445
Points : 5 864
Points : 5 864
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
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/10/2012, 17h38   #10
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 087
Points : 11 087
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.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h22.


 
 
 
 
Partenaires

Hébergement Web