Données et instructions Du langage de programmation au binaire

publicité
Données et instructions
Du langage de programmation au binaire
Lycée Paul Gauguin – Mr MINIER
Nous avons vu que :
L’unité arithmétique et logique (UAL) du processeur exécute
des instructions élémentaires à l’aide d’opérations
arithmétiques (addition, soustraction, multiplication) et
logiques (ET, OU, NON)
L’unité de Commande (UC) du processeur gère le
séquencement des instructions (à partir des programmes
présents dans la mémoire) et « pilote » l’UAL
Mais concrètement :
• Comment le processeur peut-il faire des opérations arithmétiques et logiques ?
• Comment peut-on faire comprendre au processeur les instructions à réaliser ?
Lycée Paul Gauguin – Mr MINIER
Un ordinateur est une machine qui ne peut que comparer des
hautes tensions et des basses tensions électriques.
D'où la modélisation en 0 et 1 : si nous avons une tension de
5 Volts cela correspondra à l'état logique 1, et si nous avons
0 Volt, l'état logique sera 0
C'est là l'origine du fait que l'ordinateur « compte en
binaire » : il compare des 0 et des 1.
Lycée Paul Gauguin – Mr MINIER
Un transistor est un dispositif à base de semisemi-conducteur,
conducteur
comportant trois électrodes actives, et qui permet de laisser
passer ou non un courant.
Exemple avec un transistor de type CMOS :
◦ Celui-ci reçoit du courant d’un côté (drain
drain)
drain
◦ Il le renvoie de l’autre côté (source
source)
source
◦ Entre les deux il y a une porte (grille
grille)
grille plus ou moins
ouverte (contrôlée par une tension d’entrée) qui va laisser
passer ou non le courant
Lycée Paul Gauguin – Mr MINIER
En assemblant plusieurs transistors entre eux, on
obtient des circuits électroniques évolués.
◦ On peut créer des portes logiques (AND, OR, XOR…).
Exemple de porte AND utilisant 3 transistors :
Entrée 1
Entrée 2
Sortie
0
0
0
0
1
0
1
0
0
1
1
1
Lycée Paul Gauguin – Mr MINIER
◦ On peut ensuite associer plusieurs de ces portes pour avoir
des composants plus évolués comme des compteurs,
compteurs des
convertisseurs,
convertisseurs des mémoires…
mémoires
Exemple avec un circuit additionneur 1 bit :
Portes OU exclusif
Porte OU
Portes ET
Lycée Paul Gauguin – Mr MINIER
En synthèse :
◦ plusieurs transistors assemblés entre eux de manière
précise forment une porte logique.
◦ plusieurs portes logiques donnent des circuits capables de
faire des calculs simples (additions, multiplication,
mémorisation…).
◦ beaucoup de portes logiques assemblées constituent un
circuit intégré, capable de faire un très grand nombre de
calculs complexes.
◦ Un processeur est un type de circuit intégré, comprenant
des milliards de transistors
Nous reviendrons plus en détail dans un TP à venir sur
ces transistors, sur les portes logiques, et un exemple de
circuit plus évolué.
Lycée Paul Gauguin – Mr MINIER
Un processeur ne sait calculer qu'en binaire : les
programmes doivent donc être fournis en binaire.
Donc si on veut que le processeur effectue un calcul, il
faut lui dire quelque chose de ce genre là :
« 01010100 0110101 01101101 110110101
10101010 11011110 10101011 10111100 ».
Réalisation inconcevable de programmes
directement sous forme binaire
Création en 1951 par Grace Hopper de l’Assembleur
Lycée Paul Gauguin – Mr MINIER
À chaque instruction en binaire correspond un mot
simple à retenir en assembleur.
Exemple d’instructions pour programmer un processeur x86
◦ mov : (move) déplace le contenu d'une case mémoire dans
une autre case
◦ inc : (increment) incrémente la valeur contenue dans une
case mémoire.
◦ neg : (negative) prend un nombre et donne son opposé
◦ cmp : (compare) compare deux nombres.
Lycée Paul Gauguin – Mr MINIER
Exemple de programme en Assembleur :
Les instructions précédentes permettent de modifier des
données présentes en mémoire. C’est de la programmation.
Evidemment, un programme « normal » est beaucoup,
beaucoup plus long … Il s’agit juste ici d’un principe.
Lycée Paul Gauguin – Mr MINIER
Ce programme est ensuite transformé en suite de 0 et de 1
pour que le processeur le comprenne. C’est l’étape de
l’assemblage.
l’assemblage
Inconvénients :
◦
◦
Ce langage nécessite de manipuler les données et de les
placer octet par octet dans la mémoire ou dans les registres
De plus, un programme fait en assembleur n’est pas portable
d’un processeur à un autre
Création des langages de haut niveau.
niveau
Lycée Paul Gauguin – Mr MINIER
Lycée Paul Gauguin – Mr MINIER
Les langages de haut niveau permettent une programmation
rapide et plus simple que l'assembleur
De plus, contrairement au langage assembleur, ils sont
portables (on peut utiliser le code source sur différents
ordinateurs)
Différents langages de haut niveau :
C, Fortran, Java, PHP, Python
Lycée Paul Gauguin – Mr MINIER
Lycée Paul Gauguin – Mr MINIER
Les langages de haut niveau ne sont absolument pas
compréhensibles par le processeur ! Avant de pouvoir être
utilisés, le code doit être traduit en langage assembleur.
Cette traduction, c'est ce qu'on appelle la compilation.
compilation
Une fois en langage assembleur, il faut ensuite l'assembler
en langage binaire :
Lycée Paul Gauguin – Mr MINIER
A noter :
L’étape de compilation est nécessaire pour des langages
tels que le C ou le Fortran. On parle de langages compilés.
Pour des langages comme Python, on parle plutôt de
langage interprété car on n’a pas cette étape de
compilation.
En fait, le langage interprété est traduit en quelque sorte
au fur et à mesure de l’exécution, pour être au final
compréhensible par le processeur.
Lycée Paul Gauguin – Mr MINIER
◦
Certains textes et images proviennent d’une très bonne
vulgarisation scientifique de Timo Van Neerden , que je
vous invite à lire avec attention :
http://lehollandaisvolant.net/tuto/computer/#logique
Lycée Paul Gauguin – Mr MINIER
Téléchargement