dépendent de la conception du processeur. Elles sont de quatre types : les échanges a
mémoire, les opérations arithmétiques, les opérations logiques et les contrôles (qui
permettent de faire des sauts, des boucles etc...)
L'ensemble de ces opérations est appelé un "jeu d'instructions".
On exprime souvent ces instructions dans un langage de bas niveau (très proche de la
machine) appelé assembleur.
Pour comprendre ce qui suit, il faut savoir que le processeur dispose de mémoires très
rapides, mais en petit nombre, qui s'appellent des "registres".
On suppose qu'on a ici deux registres A et B.
Voyons à quoi peuvent ressembler les instructions nécessaires pour faire une somme de deux
nombres :
LDA 11 : transfère ce qui est stocké dans la case mémoire d'adresse 11 dans le registre A (LD
comme LOAD)
STA 11 : fait l'opération inverse (ST comme STOCK)
ADD A: ajoute au registre A ce qu'il y a dans le registre B et le stocke dans A
Supposons que l'on veut additionner le contenu de la case mémoire 11 et celui de la case
mémoire 22 et mettre le résultat dans la mémoire 30. Voici une suite d'instructions possible :
LDA 11, LDB 22, ADD A, STA 30
Remarque : les lectures et les écritures dans la mémoire vive nécessitent une synchronisation
qui est obtenue grâce à une horloge.
Par exemple pour effectuer STA 11 : le processeur met les différents fils qui composent le bus
d'adresses (la voie de communication des adresses entre le processeur et la mémoire) à
l'expression de 11 en base 2 et les fils qui composent le bus de données dans un état qui
correspond au contenu de A. Au signal de l'horloge, chaque case mémoire compare son
numéro avec celui qui circule sur le bus d'adresses et la case 11 se reconnaît et enregistre ce
qui arrive sur le bus de données.
5) Le langage machine
Il faut maintenant se souvenir que l'ordinateur ne comprend que des 0 et des 1... Il faut donc
traduire les instructions en langage binaire.
Dans un ordinateur très simple on peut par exemple numéroter les différentes instructions et
stocker dans des cases numérotées successives la suite des instructions à effectuer.
Imaginons que nous ayons attribué les numéros suivants à nos instructions et registres :
A B LDA LDB ADD STA
0 1 2 3 4 5
Chaque instruction va correspondre à deux cases en mémoire : l'une pour le numéro de
l'instruction, l'autre pour l'argument
Par exemple, le programme précedent devient :
100 101 102 103 104 105 106 107
2 11 3 22 4 0 5 30
Ceci est vraiment illisible, surtout si tous les nombres de ce tableau sont écrits en binaire !
Le langage que l'on obtient alors est le "langage machine", propre à chaque processeur....
On a aussi un registre qui s'appelle le compteur de programme (PC ou aussi compteur ordinal)
qui est initialisé à 100 pour notre exemple.
Pour effectuer ce programme le processeur :
charge le contenu des cases mémoires d'adresses PC et PC+1 dans des registres
décode le premier nombre comme une instruction et le deuxième comme son argument
exécute l'instruction
Marchalisn file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
4 sur 24 05/04/2014 23:08