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.
Instruction langage machine | Symbole | Explication |
0001+12 bits | LOAD | M -> ACC (l'accumulateur est le registre A) |
0010+12 bits | STORE | ACC -> M |
0011+12 bits | ADD | ACC + M-> ACC |
0100+12 bits | SUBSTRACT | ACC - M-> ACC |
0101+12 bits | MULTIPLY | ACC * M-> ACC |
0110+12 bits | DIVIDE | ACC / M-> ACC |
0111+12 bits | JUMP | Saute à la cellule mémoire M |
1000+12 bits | JUMPZERO | Saute à M si ACC = 0 |
1001+12 bits | JUMPMSB | Saute à M si MSB de ACC = 1 (=> si ACC est négatif) |
1010+12 bits | JUMPSUB | Saute à la sous-routine à la cellule M |
1011+12 bits | RETURN | Retour de la sous-routine à M |
Version en cache
21/11/2024 09:35:53 Cette version de la page est en cache (à la date du 21/11/2024 09:35:53) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 10/02/2004, dernière modification le 28/10/2018
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.