CONTENU DE LA MICRO-MÉMOIRE
Nous allons maintenant étudier le contenu de la micro-mémoire. La largeur de cette mémoire est de 15 bits, un bit par MOP. Nous allons organiser le contenu de la micro-mémoire de telle sorte que l’adresse numéro 0 contienne toujours le début d’un microprogramme dont le but est de récupérer le code d’une instruction en mémoire centrale à l’adresse indiquée par PC. Il faut donc être sûr que PC contienne l’adresse de l’instruction suivante à exécuter lorsque ce micro-programme démarre
Micro-programme pour l’instruction JAL
Avec les instructions définies pour l’instant, il est impossible de modifier le cours de l’exécution du programme. Seuls des programmes purement séquentiels sont possibles. Afin de modifier le cours de l’exécution, nous avons besoin d’une instruction de saut. Nous allons appeler cette instruction JAL (pour jump always). Il s’agit d’une instruction de saut non conditionnel, car notre architecture ne dispose pas encore de circuit permettant de tester des conditions.
SAUTS CONDITIONNELS
Tout d’abord, il faut un registre supplémentaire pour mémoriser des informations concernant la dernière opération effectuée par l’unité arithmétique et logique. Ce registre s’appelle codes de conditions (en anglais : condition codes, ou CC). Il contient 4 bits qui indiquent respectivement si la dernière opération a donné un résultat négatif N, un résultat nul Z, un résultat avec retenue C ou un autre avec débordement V. Le registre CC est piloté par une MOP qui, lorsqu’elle vaut 1, charge le registre avec les informations produites par l’unité arithmétique et logique.
Appel d’un sous-programme
Pour l’instant, notre architecture n’est capable d’exécuter que des programmes simples avec des sauts conditionnels, ce qui correspond aux boucles des langages de programmation de haut niveau. Cependant ces langages ont beaucoup d’autres fonctionnalités. En particulier, ils sont capables de manipuler des sous-programmes, à savoir des fonctions ou des procédures.