Compartilhar via


Sobre a janela Registros no Visual Studio (C#, C++, Visual Basic, F#)

A janela Registros só estará disponível se a depuração no nível do endereço estiver habilitada na caixa de diálogo Opções, nó Depuração.

Os registros são locais especiais em um processador (CPU) que são usados para armazenar pequenos pedaços de dados nos quais o processador está trabalhando ativamente. Compilar ou interpretar o código-fonte gera instrução que move dados da memória para os registradores e de volta, conforme necessário. Acessar dados em registros é muito rápido em comparação com o acesso a dados na memória, portanto, o código que permite ao processador manter dados em um registro e acessá-los repetidamente tende a ser executado mais rápido do que o código que exige que o processador carregue e descarregue constantemente os registros. Para tornar mais fácil para o compilador manter dados em registros e executar outras otimizações, você deve evitar usar variáveis globais e contar com variáveis locais o máximo possível. Diz-se que o código escrito dessa forma tem uma boa localidade de referência. Em alguns idiomas, como C/C++, o programador pode declarar uma variável de registro, que informa ao compilador para tentar o melhor para manter a variável em um registro o tempo todo. Para obter mais informações, consulte Registrar Palavra-chave.

Os registros podem ser divididos em dois tipos: uso geral e finalidade especial. Os registros de uso geral contêm dados para operações gerais, como adicionar dois números juntos ou referenciar um elemento em uma matriz. Os registros de finalidade especial têm finalidades específicas e significado especializado. Um bom exemplo é o registrador do ponteiro de pilha, que o processador usa para acompanhar a pilha de chamadas do programa. Como programador, você provavelmente não manipulará o ponteiro de pilha diretamente. No entanto, é essencial para o funcionamento adequado do seu programa porque, sem o ponteiro de pilha, o processador não saberia para onde retornar no final de uma chamada de função.

A maioria dos registros de uso geral contém apenas um único elemento de dados. Por exemplo, um único inteiro, número de ponto flutuante ou elemento de uma matriz. Alguns processadores mais recentes têm registros maiores, chamados de registros de vetor, que podem conter uma pequena matriz de dados. Como eles contêm tantos dados, os registros de vetor permitem que as operações envolvendo matrizes sejam executadas muito rapidamente. Os registros de vetor foram usados pela primeira vez em supercomputadores caros e de alto desempenho, mas agora estão se tornando disponíveis em microprocessadores em que são usados para grande vantagem em operações gráficas intensivas.

Um processador geralmente tem dois conjuntos de registros de uso geral, um otimizado para operações de ponto flutuante e outro para operações inteiras. Não é surpresa que esses sejam chamados de registros de ponto flutuante e inteiro.

O código gerenciado é compilado em tempo de execução para o código nativo que acessa os registros físicos do microprocessador. A janela Registros exibe esses registros físicos para o common language runtime ou código nativo. A janela Registros não exibe informações de registro para script ou aplicativo SQL, pois script e SQL são idiomas que não dão suporte ao conceito de registros.

Para obter mais informações sobre como exibir a janela Registros , consulte Usando a janela Registros.

Ao examinar a janela Registros , você verá entradas como EAX = 003110D8.

O símbolo à esquerda do = sinal é o nome do registro, EAXnesse caso. O número à direita do = sinal representa o conteúdo do registro.

A janela Registros permite que você faça mais do que apenas exibir o conteúdo de um registro. Quando você estiver no modo de interrupção no código nativo, poderá clicar no conteúdo de um registro e editar o valor. Isso não é algo que você deve fazer aleatoriamente. A menos que você entenda o registro que está editando e os dados que ele contém, o resultado da edição descuidada provavelmente será uma falha de programa ou alguma outra consequência indesejada. Infelizmente, uma explicação detalhada dos conjuntos de registros dos vários processadores Intel e compatíveis com Intel vai muito além do escopo desta breve introdução.

Registrar grupos

Para reduzir a confusão, a janela Registros organiza os registros em grupos. Se você clicar com o botão direito do mouse na janela Registros , verá um menu de atalho contendo uma lista de grupos, que você pode exibir ou ocultar como quiser.

Registro de bandeiras

Para processadores Intel x86, você pode ver os sinalizadores a seguir na janela Registros . Durante uma sessão de debug, você também pode editar esses flags.

Flag Definir valor
Overflow OV = 1
Direção UP = 1
Interromper EI = 1
Assinar PL = 1
Zero ZR = 1
Transporte auxiliar AC = 1
Parity PE = 1
Carregar CY = 1