À propos de la fenêtre registres dans Visual StudioAbout the Registers Window in Visual Studio

Le inscrit fenêtre est disponible uniquement si le débogage au niveau des adresses est activé dans le Options boîte de dialogue, débogage nœud.The Registers window is available only if address-level debugging is enabled in the Options dialog box, Debugging node.

Les registres sont des emplacements particuliers dans un processeur (UC) qui sont utilisés pour stocker de petits fragments de données sur lesquels le processeur travaille activement.Registers are special locations within a processor (CPU) that are used to store small pieces of data that the processor is actively working on. La compilation ou l'interprétation du code source génère des instructions qui déplacent des données de la mémoire vers des registres et vice versa, en fonction des besoins.Compiling or interpreting source code generates instructions that move data from memory into the registers and back again, as needed. L'accès aux données stockées dans les registres est très rapide comparé à l'accès aux données stockées en mémoire. De ce fait, le code autorisant le processeur à stocker des données dans un Registre et à y accéder à maintes reprises tend à s'exécuter plus rapidement que le code exigeant que le processeur charge et décharge constamment les registres.Accessing data in registers is very fast compared to accessing data in memory, so code that allows the processor to keep data in a register and access it repeatedly tends to execute faster than code that requires the processor to constantly load and unload registers. Pour que le compilateur puisse plus facilement conserver des données dans des registres et réaliser d'autres optimisations, vous devez éviter d'utiliser des variables globales et utiliser autant que possible des variables locales.To make it easier for the compiler to keep data in registers, and perform other optimizations, you should avoid using global variables and rely on local variables as much as possible. Le code écrit de cette manière est réputé avoir une bonne localité de référence.Code written in this fashion is said to have good locality of reference. Dans certains langages, tels que C/C++, le programmeur peut déclarer une variable de Registre qui demande au compilateur de faire de son mieux pour essayer de toujours conserver la variable dans un Registre.In some languages, such as C/C++, the programmer can declare a register variable, which tells the compiler to try its best to keep the variable in a register at all times. Pour plus d’informations, consultez Register, mot clé.For more information, see Register Keyword.

Les registres peuvent être divisés en deux types : les registres génériques et les registres spéciaux.Registers can be divided into two types: general purpose and special purpose. Les registres à caractère général contiennent des données relatives à des opérations générales telles que l'ajout de deux nombres ou la référence d'un élément dans un tableau.General-purpose registers hold data for general operations such as adding two numbers together or referencing an element in an array. Les registres spéciaux ont des buts spécifiques et une signification particulière.Special-purpose registers have specific purposes and specialized meaning. Le Registre de pointeur de pile en est un bon exemple ; il est utilisé par le processeur pour conserver une trace de la pile des appels du programme.A good example is the stack-pointer register, which the processor uses to keep track of the program's call stack. En tant que programmeur, vous ne manipulerez probablement pas directement le pointeur de pile.As a programmer, you will probably not manipulate the stack pointer directly. Il est néanmoins essentiel au bon fonctionnement de votre programme, car en son absence, le processeur ne sait pas où revenir à l'issue d'un appel de fonction.However, it is essential to the proper functioning of your program because without the stack pointer, the processor would not know where to return to at the end of a function call.

La plupart des registres à caractère général contiennent uniquement un élément de données.Most general-purpose registers hold only a single data element. Par exemple, un entier seul, un nombre à virgule flottante ou un élément d'un tableau.For example, a single integer, floating-point number, or element of an array. Certains processeurs plus récents proposent des registres de plus grande taille, appelés des registres vectoriels, qui peuvent contenir un petit tableau de données.Some newer processors have larger registers, called vector registers, that can hold a small array of data. Du fait de leurs nombreuses données, les registres vectoriels permettent d'effectuer rapidement les opérations impliquant des tableaux.Because they hold so much data, vector registers permit operations involving arrays to be performed very rapidly. Ces registres ont dans un premier temps été utilisés sur les superordinateurs très performants et coûteux, mais commencent à apparaître sur les microprocesseurs où ils s'avèrent tout particulièrement utiles dans les opérations complexes sur les graphiques.Vector registers were first used on expensive, high-performance supercomputers but are now becoming available on microprocessors where they are used to great advantage in intensive graphic operations.

Un processeur contient généralement deux jeux de registres à caractère général, un qui est optimisé pour les opérations en virgule flottante et un second pour les opérations sur les entiers.A processor usually has two sets of general-purpose registers, one optimized for floating-point operations and the other for integer operations. Logiquement, ils sont appelés Registre à virgule flottante et Registre entier.Not surprisingly, these are called floating-point and integer registers.

Le code managé est compilé pendant l'exécution en code natif, qui accède aux registres physiques du microprocesseur.Managed code is compiled at run time to native code that accesses the physical registers of the microprocessor. Le inscrit fenêtre affiche ces registres physiques pour le common language runtime ou le code natif.The Registers window displays these physical registers for common language runtime or native code. Le inscrit fenêtre n’affiche pas les informations de Registre pour le script ou une application SQL, car le script et SQL sont des langages qui ne prennent pas en charge le concept de registres.The Registers window does not display register information for script or SQL application, because script and SQL are languages that do not support the concept of registers.

Pour plus d’informations sur l’affichage de la inscrit fenêtre, consultez à l’aide de la fenêtre Registres.For more information on displaying the Registers window, see Using the Registers Window.

Lorsque vous examinez le inscrit fenêtre, vous verrez des entrées telles que EAX = 003110D8.When you look at the Registers window, you will see entries such as EAX = 003110D8.

Le symbole à gauche de la = signe est le nom du Registre, EAX, dans ce cas.The symbol to the left of the = sign is the register name, EAX, in this case. Le nombre à droite de la = connexion représente le contenu du Registre.The number to the right of the = sign represents the register contents.

Le inscrit fenêtre vous permet de faire plus que simplement afficher le contenu d’un Registre.The Registers window enables you to do more than just view the contents of a register. Lorsque vous êtes en mode arrêt dans du code natif, vous pouvez cliquer sur le contenu d'un Registre et modifier la valeur.When you are in break mode in native code, you can click on the contents of a register and edit the value. Cette opération ne doit pas être réalisée à l'aveuglette.This is not something you should do at random. Sauf si vous comprenez le Registre que vous êtes en train de modifier et les données qu'il contient, la modification inconsidérée peut provoquer un incident du programme ou avoir d'autres conséquences non désirées.Unless you understand the register you are editing, and the data it contains, the result of careless editing is likely to be a program crash or some other undesired consequence. Malheureusement, l'explication détaillée des jeux de registres des différents processeurs Intel et compatibles va bien au-delà de l'objet de cette brève introduction.Unfortunately, a detailed explanation of the register sets of the various Intel and Intel-compatible processors goes far beyond the scope of this brief introduction.

Groupes de registresRegister Groups

Pour réduire l’encombrement, la inscrit fenêtre classe les registres en groupes.To reduce clutter, the Registers window organizes registers into groups. Si vous cliquez sur le inscrit fenêtre, vous verrez un menu contextuel contenant une liste de groupes, vous pouvez afficher ou masquer comme vous le souhaitez.If you right-click on the Registers window, you will see a shortcut menu containing a list of groups, which you can display or hide as you see fit.

Voir aussiSee Also

Comment : utiliser la fenêtre Registres How to: Use the Registers Window
Principes de base du débogueurDebugger Basics