![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre régulier
![]() Date d'inscription: août 2008
Localisation: Canada
Messages: 125
|
Depuis que je m'intéresse à l'informatique, tous les livres, cours, tutorials que j'ai pu lire ou voir n'ont toujours pas répondu à ma question . . .
On y parle toujours du matériel, de l'os, de la programmation . . . enfin de l'assembleur! Tout arrête toujours au même endroit . . . En compilant le code, il est transformé en code que le processeur va comprendre . . . bon . . . Et il comprend comment lui??? Comment le processeur fait pour comprendre! Je sais que ce n'est pas la section idéale pour ce message, mais je n'en voyais pas d'autre... Merci d'avance de votre aide Alex |
|
|
|
|
|
#2 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: juillet 2007
Localisation: Belgique
Messages: 410
|
Tu devrais trouver ton bonheur ici : http://systeme.developpez.com/cours/#architecture
__________________
:wq |
|
|
|
|
|
#4 (permalink) | |
|
Membre expérimenté
![]() Date d'inscription: septembre 2007
Localisation: Évry
Âge: 32
Messages: 544
|
Citation:
En gros, la seule chose que sache faire un microprocesseur est 1) lire des données en mémoire 2) appliquer un jeu d'instruction arithmétiques ou logiques fixe et restreint sur ces données 3) écrire ces données modifiées ailleurs en mémoire. Un peu comme un palan sur un dock. Il est donc conçu pour commencer à un endroit défini de la mémoire dès sa mise sous tension, par exemple l'adresse 00000000, et la valeur de l'octet qu'il va y lire va correspondre à une des opérations qu'il sait faire (par exemple : 0 additionne 1 soustrait 2 décale vers la gauche 3 décale vers la droite, 4 multiplie, ...). Ce sont les fameux codes-opérations. Cette consigne lue, ton processeur va s'attacher à remplir sa mission. Pour ce faire, il peut avoir besoin de [b]données[b], qu'il va chercher ... dans la mémoire, à la suite du code-opération. Si l'octet N° 00000000 contenait MUL, l'ordre de multiplier (représenté dans mon exemple par la valeur 4), alors le CPU va aller chercher ses multiplicandes dans les octets 00000001 et 00000002. Une fois l'opération achevée, il lit la consigne suivante dans l'octet suivant, en l'occurence le n° 00000003, etc. Et ton processeur va avancer de cette manière sans s'arrêter, jusqu'à mise hors-tension. Évidemment, ce sont les grandes lignes. Il existe des instructions comme HALT qui stoppent le microprocesseur jusqu'à arrivée d'une « interruption », il dispose de registres pour retenir les infos sur une durée arbitraire, etc. Maintenant, quelles sont ces opérations ? Des opérations logiques de bases qui peuvent être obtenues par câblage au niveau électronique. Les plus fondamentales sont les opérations booléenes ET, OU, XOR, etc. Câblées ensemble, ces opérations permettent d'en définir d'autres, arithmétiques par exemple, telle que l'additionneur, sur le modèle du ripple carry : http://en.wikipedia.org/wiki/Adder_(electronics) En utilisant des XOR, tu peux inverser les bits d'un des ports d'entrées, et transformer ton additionneur en soustracteur. En faisant sortir la ligne qui contrôle les XOR, ton appareil est bi-valent : 0 ADD 1 SUB. De proche en proche, tu obtiens une « unité arithmétique et logique ». Si tu colles autour des registres pour les opérandes et le code opération, un séquenceur pour aller lire le tout depuis la mémoire, l'un après l'autre, et une horloge pour faire marcher le tout, tu as fabriqué un CPU. Ça veut dire également que le microprocesseur ne communique avec son entourage qu'en lisant en en écrivant dans la mémoire (les interruptions mises à part). Donc, en théorie, tu pourrais faire marcher un ordinateur entier rien qu'avec des pointeurs ! Ou rien qu'en utilisant PEEK et POKE, à l'é-poke du BASIC des années 80. Ce qui permettait d'épater ses amis avec des tours de magie assez amusants. Sur un processeur de PC, il y a des systèmes supplémentaires, par exemple deux bus distincts, un pour la RAM et un pour les périphériques (les fameux inb, outb) et plein d'autres choses très excitantes, mais le principe fondamental reste le même (celui de la machine de Turing). Dernière modification par Obsidian ; 05/09/2008 à 16h42 Motif: URL cassée sur le lien Wikipédia |
|
|
|
|
|
|
#7 (permalink) | |||
|
Membre éprouvé
![]() Date d'inscription: juillet 2007
Localisation: Belgique
Messages: 410
|
Citation:
Citation:
Citation:
__________________
:wq |
|||
|
|
|
|
|
#9 (permalink) | ||
|
Membre expérimenté
![]() Date d'inscription: septembre 2007
Localisation: Évry
Âge: 32
Messages: 544
|
Citation:
- Il n'y a pas que les x86. Les PICs, par exemple, sont guère plus performants que les 8 bits de l'époque, et sont pourtant très à la mode. Citation:
|
||
|
|
|
|
|
#10 (permalink) | |
|
Membre expérimenté
![]() Date d'inscription: septembre 2007
Localisation: Évry
Âge: 32
Messages: 544
|
Citation:
Mais avec une heure d'explication et une feuille de papier, tout deviendrait limpide. |
|
|
|
|
|
|
#11 (permalink) |
|
Membre régulier
![]() Date d'inscription: août 2008
Localisation: Canada
Messages: 125
|
wow! une heure? malheureusement je ne connais personne capable de m'expliquer! . . .
Comme j'ai dit, je ne souhaite pas apprendre en détails l'architecture d'un processeur moderne! Mais si je comprend les bases, je crois que le reste n'est que logique (plus gros (et plus petit en même temps Dernière modification par Alexandreg12 ; 14/08/2008 à 03h47 |
|
|
|
|
|
#12 (permalink) | ||
|
Membre expérimenté
![]() Date d'inscription: septembre 2007
Localisation: Évry
Âge: 32
Messages: 544
|
Citation:
Citation:
Moi, j'étais assez fan du 6809 en son temps. Ni trop compliqué ni trop simple, un jeu d'instruction bien pensé et des mnémoniques bien choisis. L'éducation nationale était d'accord pendant un temps, également ... Tu peux aussi regarder le Z80 qui a été extrêmement répandu, sachant que ces vénérables bébêtes ne sont plus en service depuis longtemps. Essaie la famille des 68000, aussi. Dans la directe lignée des Motorola. L'adage disait que les Intel sont conçus par des électroniciens, les Motorola par des programmeurs. Ça résume assez bien la situation. |
||
|
|
|
|
|
#14 (permalink) |
|
Membre habitué
![]() Date d'inscription: mai 2008
Localisation: Paris
Messages: 158
|
Pour compléter le tout, un ouvrage de référence qui rentre dans le détail tout en restant très simple :
Architecture de l'ordinateur - A. Tannenbaum
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
|
|
![]() |
![]() |
||
Comment le processeur comprend-il le code machine ?
|
||
| Outils de la discussion | |
|
|