Compartir a través de


Acerca de la ventana Registros en Visual Studio (C#, C++, Visual Basic, F#)

La ventana Registros solo está disponible si la depuración de nivel de dirección está habilitada en el cuadro de diálogo Opciones , nodo Depuración .

Los registros son ubicaciones especiales dentro de un procesador (CPU) que se usan para almacenar pequeños fragmentos de datos en los que el procesador está trabajando activamente. La compilación o interpretación del código fuente genera instrucciones que mueven datos de la memoria a los registros y de vuelta según sea necesario. El acceso a los datos de los registros es muy rápido en comparación con el acceso a los datos en la memoria, por lo que el código que permite al procesador mantener los datos en un registro y acceder a ellos tiende a ejecutarse repetidamente más rápido que el código que requiere que el procesador cargue y descargue constantemente los registros. Para facilitar al compilador mantener los datos en registros y realizar otras optimizaciones, debe evitar el uso de variables globales y confiar en variables locales tanto como sea posible. Se dice que el código escrito de esta manera tiene una buena localidad de referencia. En algunos lenguajes, como C/C++, el programador puede declarar una variable de registro, que indica al compilador que intente mantener la variable en un registro en todo momento. Para obtener más información, vea Register Keyword.

Los registros se pueden dividir en dos tipos: uso general y propósito especial. Los registros de uso general contienen datos para operaciones generales, como agregar dos números juntos o hacer referencia a un elemento de una matriz. Los registros de propósito especial tienen propósitos específicos y significado especializado. Un buen ejemplo es el registro del puntero de pila, que el procesador utiliza para hacer un seguimiento de la pila de llamadas del programa. Como programador, probablemente no manipularás directamente el puntero de pila. Sin embargo, es esencial para el correcto funcionamiento de su programa porque, sin el puntero de pila, el procesador no sabría dónde regresar al finalizar una llamada a función.

La mayoría de los registros de uso general solo contienen un único elemento de datos. Por ejemplo, un único entero, un número de punto flotante o un elemento de una matriz. Algunos procesadores más recientes tienen registros más grandes, denominados registros vectoriales, que pueden contener una pequeña matriz de datos. Dado que contienen tantos datos, los registros vectoriales permiten que las operaciones que implican matrices se realicen muy rápidamente. Los registros vectoriales se usaron por primera vez en superequipos costosos y de alto rendimiento, pero ahora están disponibles en microprocesadores en los que se usan para aprovechar enormemente las operaciones gráficas intensivas.

Normalmente, un procesador tiene dos conjuntos de registros de uso general, uno optimizado para operaciones de punto flotante y el otro para operaciones de enteros. No es sorprendente que se llamen registros de punto flotante e enteros.

El código administrado se compila en tiempo de ejecución en código nativo que accede a los registros físicos del microprocesador. La ventana Registros muestra estos registros físicos para el entorno de ejecución común o código nativo. La ventana Registros no muestra información de registro para script o aplicación SQL, ya que el script y SQL son lenguajes que no admiten el concepto de registros.

Para obtener más información sobre cómo mostrar la ventana Registros , vea Usar la ventana Registros.

Al examinar la ventana Registros , verá entradas como EAX = 003110D8.

El símbolo situado a la izquierda del signo = es el nombre del registro, EAX, en este caso. El número a la derecha del = signo representa el contenido del registro.

La ventana Registros permite hacer algo más que ver el contenido de un registro. Cuando esté en modo de interrupción en código nativo, puede hacer clic en el contenido de un registro y editar el valor. Esto no es algo que debe hacer al azar. A menos que comprenda el registro que está editando y los datos que contiene, es probable que el resultado de la edición sin cuidado sea un bloqueo del programa o alguna otra consecuencia no deseada. Desafortunadamente, una explicación detallada de los conjuntos de registros de los distintos procesadores compatibles con Intel e Intel va mucho más allá del ámbito de esta breve introducción.

Registrar grupos

Para reducir el desorden, la ventana Registros organiza los registros en grupos. Si hace clic con el botón derecho en la ventana Registros , verá un menú contextual que contiene una lista de grupos, que puede mostrar u ocultar según se ajuste.

Banderas de registro

En el caso de los procesadores Intel x86, puede ver las marcas siguientes en la ventana Registros . Durante una sesión de depuración, también puede editar estas marcas.

Flag Establecer valor
Desbordamiento OV = 1
Dirección UP = 1
Interrumpir EI = 1
Sign PL = 1
Cero ZR = 1
Transporte auxiliar AC = 1
Paridad PE = 1
Transportar CY = 1