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 |
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 10/02/2004 gemaakt, de laatste keer de 28/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/langage-machine.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.