Langage machine

"Langage machine" contre "micro instructions"

Nous avons vu que les micro instructions permettent (par la gestion des portes logiques) de contrôler les micro circuits et de réaliser nos micro programmes.
Il serait donc possible de coder un grand nombre de micro programmes directement dans la “Micro Memory”[1], ce qui accélèrerait fortement les temps d'exécutions de ces programmes.

Seulement, la mémoire utilisée dans la “Micro Memory”[1] est extrêmement coûteuse, car elle doit être très rapide et se situe au cœur du microprocesseur.
Sa taille sera donc limitée, ce qui ne nous permet plus de contenir les nombreuses instructions de notre programme.
De plus, le micro programme est gravé une fois pour toute à la conception du microprocesseur, et dépend directement de l'architecture de ce dernier (circuits, phases, portes logiques).

 

Principe du langage machine

Les micro instructions contenues dans la “Micro Memory”[1] sont des suites de bits qui contrôlent une série de portes logiques. Le langage machine est une suite d'instructions contenues dans la “Main Memory”[2], et chaque instruction en langage machine correspond à une série de micro instructions.

Nous avons besoin de spécifier une adresse pour notre instruction langage machine, mais aussi l'adresse de la donnée à traiter.

Dans le cas d'une architecture 16 bits (nous sommes actuellement avec des architectures 32 bits, et 64 bits), 4 bits peuvent être réservés pour l'adresse de l'instruction langage machine dans la main memory (op-code [“operation code”[3]]), et 12 bits pour l'adresse de la donnée dans la “Main Memory”[2].

Jeu d'instructions langage machine
Instruction langage machineSymboleExplication
0001+12 bitsLOADM -> ACC (l'accumulateur est le registre A)
0010+12 bitsSTOREACC -> M
0011+12 bitsADDACC + M-> ACC
0100+12 bitsSUBSTRACTACC - M-> ACC
0101+12 bitsMULTIPLYACC * M-> ACC
0110+12 bitsDIVIDEACC / M-> ACC
0111+12 bitsJUMPSaute à la cellule mémoire M
1000+12 bitsJUMPZEROSaute à M si ACC = 0
1001+12 bitsJUMPMSBSaute à M si MSB de ACC = 1 (=> si ACC est négatif)
1010+12 bitsJUMPSUBSaute à la sous-routine à la cellule M
1011+12 bitsRETURNRetour de la sous-routine à M

 

Document créé le 10/02/04 20:10, dernière modification le 23/03/18 09:27
Source du document imprimé : https://www.gaudry.be/langage-machine.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Notes

  1. a,b,c Micro Memory : correspond à « micro mémoire” en français

  2. a,b Main Memory : correspond à « mémoire principale” en français

  3. a,b operation code : correspond à « code opération” en français

  4.  op-code : “operation code” (en français, « code opération »)