Maison >Problème commun >Quel est le registre qui stocke l'adresse de décalage dans le segment de code ?

Quel est le registre qui stocke l'adresse de décalage dans le segment de code ?

青灯夜游
青灯夜游original
2021-01-22 13:54:0110028parcourir

Le registre qui stocke l'adresse de décalage dans le segment de code est : le registre de pointeur d'instruction. Le registre de pointeur d'instruction IP est utilisé pour contrôler la séquence d'exécution des instructions dans le programme ; pendant le fonctionnement normal, IP contient l'adresse de décalage de l'instruction suivante (octet) à récupérer par la BIU. Dans des circonstances normales, le code d'instruction est accédé. de la mémoire une fois, l'IP augmentera automatiquement de 1 pour assurer l'exécution séquentielle des instructions.

Quel est le registre qui stocke l'adresse de décalage dans le segment de code ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.

La fonction du registre est de stocker le code binaire, composé d'une combinaison de bascules avec fonction de stockage. Une bascule peut stocker un code binaire de 1 bit, donc un registre qui stocke des codes binaires de n bits doit être composé de n bascules.

Le registre qui stocke l'adresse de décalage dans le segment de code est : le registre de pointeur d'instruction.

Le registre de pointeur d'instruction IP (CPU X86) est équivalent au compteur de programme PC dans le CPU ARM et est utilisé pour contrôler la séquence d'exécution des instructions dans le programme. Pendant le fonctionnement normal, l'IP contient l'adresse de décalage de la prochaine instruction (octet) à récupérer par la BIU. Dans des circonstances normales, chaque fois qu'un code d'instruction est accédé à partir de la mémoire, l'IP est automatiquement incrémentée de 1 pour assurer la séquence. exécution des instructions. IP est en fait le pointeur d'adresse où le code machine d'instruction stocke l'unité de mémoire. Le contenu de IP peut être réécrit de force par des instructions de transfert (telles que JMP) pour modifier l'ordre d'exécution du programme.

Attention ! Le programme que nous avons compilé ne peut pas accéder directement à IP, c'est-à-dire que nous ne pouvons pas utiliser d'instructions pour récupérer la valeur d'IP ou définir une valeur pour IP (par exemple, nous ne pouvons pas utiliser l'instruction mov pour attribuer une valeur à IP).

Connaissances étendues : Distinction de concepts

Registre d'instructions (IR, Instruction Register), utilisé pour stocker temporairement le courant instructions de processus à exécuter. Le signal d'horloge du registre d'instructions est clk, qui est déclenché sur le front montant de clk. Le registre d'instructions stocke les instructions envoyées depuis le bus de données dans un registre de 16 bits, mais toutes les données du bus de données n'ont pas besoin d'être enregistrées, car parfois des instructions sont transmises sur le bus de données, et parfois des données sont transmises. La nécessité d'enregistrer les données est contrôlée par le signal Ir_ena du contrôleur d'état du processeur. Lors de la réinitialisation, le registre d'instructions est effacé.

Le registre de pointeur d'instruction IP (Instruction Pointer) est utilisé pour stocker le décalage d'adresse de l'instruction à récupérer. Ce n'est que lorsqu'il est combiné avec le registre CS qu'il peut former la véritable adresse physique pointant vers l'instruction.

Pour plus d'articles connexes, veuillez visiter le Site Web PHP chinois ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn