No cache version.

Caching disabled. Default setting for this page:enabled (code LNG204)
If the display is too slow, you can disable the user mode to view the cached version.

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).

Contents Haut

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

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 10/02/2004, last modified the 28/10/2018
Source of the printed document:https://www.gaudry.be/en/langage-machine.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.

Notes

  1. a,b,c Micro Memory : corresponds to « micro mémoire » en français

  2. a,b Main Memory : corresponds to « mémoire principale » en français

  3. a,b operation code : corresponds to « code opération » en français

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

Contents Haut