[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Documentation complète sur la compilation de programmes



Title: Pro. Signature


Le 04/01/2016 21:27, enae a écrit :
comment connait-on les spécifications du "code machine"? (je devine que cela est certainement une suite de 0 et de 1, et très certainement fortement dépendant du processeur et de son architecture)
comment le processeur sait-il ce qu'il a à faire en voyant ce code machine?
comment est chargé ce code machine dans le processeur ? (j'aurai tendance à penser à grub, mais, à la mise sous tension du processeur, à t+1 qu'est-ce qui fait le processeur commence à faire une tâche?)


http://www.commentcamarche.net/contents/763-processeur
est plus simple à comprendre que le Wikipedia

Grosso modo, on repart bien de l’algèbre de Bool qui détermine la façon de mener des opérations arithmétiques sur des valeurs codées en base 2.
Ces opérations sont "câblées" en dur dans des circuits électroniques (des transistors à la base).
Ces circuits sont assemblés dans un même composant (un processeur) afin de fournir des opérations plus complexes : des instructions.
Jusqu'à ce que, sous l'impulsion de cycles d'horloges réguliers, on fournisse au processeur ainsi constitué,  des opérandes et des opérations dans des espaces mémoire internes (des registres), qui déroule alors son microprogramme constitué d'un jeu d’instructions fixes (car figé dans l’électronique).
10    ADD    REG1, REG2            # Ajoute le contenu du registre 1 au registre 2

C'est bien évidemment un peu plus compliqué que cela, et la technologie évoluant, des architectures nouvelles ont amélioré/complexifié cette vision simpliste : CISC, RISC, parallélisme, processeur analogique, gestion mémoire indexée, virtuelle, etc.

==
Écrire un compilateur (en pseudo-code), revient alors :
- écrire un compilateur selon un jeu d'instruction universelle (pseudo-code) : lire, écrire, additionner, multiplier ...
- à coder/porter le jeu d’instruction pseudo-code dans le jeu d’instruction (langage machine) du processeur

Var1 + Var2 ==> Load Var1,REG1     Load Var2,REG2      ADD  REG1, REG2

- à finaliser le compilateur / pseudo-code selon les dernières spécificités du processeur
 

Bon je m'arrête là, je suis déjà trop compliqué sans doute ;-)
Pierre

--

Pierre Touzeau

-----------------------------------------------------------
Chargé de mission      Préfecture de region Basse-Normandie
SGAR, rue Daniel HUET 14038 CAEN CEDEX      +33 231 306 306
pierre.touzeau@basse-normandie.pref.gouv.fr +33 608 968 574
-----------------------------------------------------------


Reply to: