Compliation

Fermé
slim - 26 déc. 2009 à 00:10
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 27 déc. 2009 à 02:09
salut tous le monde.
avec un langage haut niveau,on a besoin d'un compilateur pour avoir le programme objet compris par le processeur .
1- je veux savoir si ce programme objet est en assembleur ou en langage binaire ?
2- si on écrit un code en assembleur ,alors est ce qu'il ya une compilation ou bien exécution directe par le processeur ?

merci pour votre réponse .

9 réponses

slimIBM Messages postés 6 Date d'inscription samedi 26 décembre 2009 Statut Membre Dernière intervention 27 décembre 2009
26 déc. 2009 à 01:35
salut.
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
26 déc. 2009 à 02:41
en quelque sorte il y a une traduction. Si vous écrivez "mov ax bx" (ça ne veut rien dire, je ne connais pas l'assembleur, mais c'est à peu près ça), c'est du texte. Ce n'est pas du code exécutable. Néanmoins, la traduction assembleur code exécutable est directe, c'est à dire qu'un logiciel pour programmer en assembleur va simplement traduire "mot pour mot" votre code texte en code binaire. Il est donc bas niveau, et on ne parle pas de "compilation" (ce serait plutot de la transcription toute bête).

Si éventuellement on parle de compilation, ce n'est pas comme pour un langage de haut niveau ou le compilateur doit se "casser la tête" à traduire en langage machine. Ici il doit juste copier en traduisant.
0
slimIBM Messages postés 6 Date d'inscription samedi 26 décembre 2009 Statut Membre Dernière intervention 27 décembre 2009
26 déc. 2009 à 13:54
bonjour.
je reviens a la première question: est ce la compilation d'un fichier source écrit en langage haut niveau donne un code assembleur ou un code binaire ?

j'ai une autre question :
si j'Ecris un programme en assembleur 8086,alors sur quel processeur je peut exécuter ce code ? une autre façon de dire ,est ce que je dois apprendre l'assembleur pentium ou autre si mon processeur est pentium ou core 2 duo par exemple ?
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
26 déc. 2009 à 14:03
Salut,
le code donné par un compilateur est un code binaire traduisant des instructions assembleur (seuls commandes que connait un processeur!!)
La machine ne comprend que des 0 et des 1...donc quand tu écris du code en assembleur, il faut quand meme le compiler pour traduire ce que tu as écrit et faire le lien avec les autres librairies utilisés, en code machine!!
Les instructions, dépendant de l'architecture du micro, il faut connaitre le jeu d'instruction du micro( que l'on trouve sur les datasheet constructeur!!)
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salut .
d'accord jusqu'à maintenant je pense que j'arrive a comprendre quelque chose on m'appuyant sur vos réponses ainsi que les informations présentes sur la toile.
mais ,ce que j'arrive pas a comprendre ,c'est comment le processeur va analyser un fichier binaire avec des 0 et de1 et va comprendre les instructions qu'ils comportent ?
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
26 déc. 2009 à 18:50
Ben un processeceur n'est qu'un system electronique repondant à certain code suivant l'etat physique (5v ou 0v en general) de certain transistor....
Par exemple un MOV en assembleur va correspondre (je dis n'importe quoi..) à 00011001 comme instruction, cet etat va modifier l'etat physique de certaines entrées, afin de realiser l'operation souhaitée!!(genere ce qu'on appelle le microcode)
Pour en savoir plus, regarde des bouqins sur l'architecture des machines puis l'electronique!
@+
0
salut.
je pense que j'ai le livre d'andrew tanenbum sur les architecture ,j'espére trouvé des réponse sur le sujet.
maintenant je veux savoir si mon programme écrit en assembleur 8086 peut s'exécuter sur mon µp intel core 2 duo ?
une autre façon de dire ,est ce que les jeux d'instruction d'un core 2 duo sont compatible avec celle d'un 8086 ?
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
26 déc. 2009 à 19:02
Normalement oui, car il fait parti de la famille des x86
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
27 déc. 2009 à 02:09
concernant le post 5,
si tu connais un peu, c'est le même principe qu'avec les "automates", ces vieux robots qui exécutent divers mouvements selon une carte perforée. C'est purement mécanique, le processeur est fabriqué pour réagir d'une certaine manière à une suite d'impulsions (un code binaire). C'est la raison pour laquelle un code écrit pour un certain processeur ne va a priori pas fonctionner sur un autre.
0