Je ne comprends pas comment le processeur sait quand il doit pointer ou regarder un certain endroit où un format d'instruction machine est stocké? Justement, je ne sais pas comment la CPU sait quel emplacement de mémoire elle doit mettre dans le compteur de programmes (jeu d'instructions) avant de commencer à exécuter cette instruction particulière. J'espère que cette question n'est pas trop déroutante car a je suis perdu: D
-5
Réponses:
En fait, ce n'est pas si compliqué.
Le registre de compteur de programmes (ou PC) contient l'adresse de la mémoire de l'instruction (suivante) à (extraire) et exécuter.
(En supposant que nous utilisons un processeur avec une architecture en pile.)
Lors d’une réinitialisation du processeur (par exemple après une mise sous tension), le PC est automatiquement chargé avec une adresse prédéfinie, qui devrait être l’emplacement de la première instruction d’un programme d’amorçage.
Lorsque l'instruction en cours d'exécution est une opération de branchement, de saut ou d'appel, l'adresse cible est calculée et chargée dans le registre du PC. L'instruction suivante est (extraite et) exécutée à partir de cette adresse cible.
Lorsque l'instruction en cours d'exécution est une opération de retour, l'adresse de retour est extraite de la pile et chargée dans le registre du PC. L'instruction suivante est (extraite et) exécutée à partir de cette adresse de retour.
Pour toutes les autres instructions, le registre du PC est simplement incrémenté (" compte ") pour avancer à l’instruction suivante en mémoire. C’est-à-dire que les instructions sont (extraites et) exécutées séquentiellement (jusqu’à ce qu’une instruction de type branchement soit exécutée ou qu’une interruption se produise).
Si une interruption se produit, le contenu du registre du PC mis à jour est ensuite inséré dans la pile à la fin de l'instruction en cours (pour une utilisation ultérieure en tant qu'adresse de retour). Le registre PC est chargé avec l'adresse d'un gestionnaire d'interruption, qui est ensuite exécuté.
la source
Après quelques recherches, j'ai trouvé la réponse. Au tout début, le processeur obtient l'adresse d'initialisation de notre application lorsque celle-ci est démarrée. Par exemple, cette adresse est généralement 0x00000000 pour une infrastructure 32 bits. Après le démarrage de ce micro-programme, il fournit un compteur de programme avec un emplacement mémoire où l'instruction est stocké. Juste pour dire, je suis désolé parce que je pose une question complexe ici avant que je fasse des recherches. J'espère que quelqu'un trouvera cela utile.
la source