Partilhar via


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

A janela Registradores só está disponível se a depuração no nível de endereço estiver habilitada na caixa de diálogo OpçõesDepuração.

Os registradores são locais especiais dentro de 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ções que movem os dados da memória para os registradores e vice-versa, conforme necessário. O acesso a dados em registros é muito rápido em comparação com o acesso a dados na memória, de modo que 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 o uso de variáveis globais e confiar em variáveis locais tanto quanto possível. Diz-se que o código escrito desta forma tem boa localidade de referência. Em algumas linguagens, como C/C++, o programador pode declarar uma variável register, que diz ao compilador para tentar o seu melhor para manter a variável em um registro em todos os momentos. Para obter mais informações, consulte Registrar palavra-chave.

Os registos podem ser divididos em dois tipos: fins gerais e fins especiais. Os registros de uso geral armazenam dados para operações gerais, como adicionar dois números juntos ou fazer referência a um elemento em uma matriz. Os registos para fins especiais têm finalidades específicas e significado especializado. Um bom exemplo é o registro de 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 teria como saber para onde retornar no final de uma chamada de função.

A maioria dos registos de uso geral contém apenas um único elemento de dados. Por exemplo, um único inteiro, número de vírgula flutuante ou elemento de uma matriz. Alguns processadores mais recentes têm registradores maiores, chamados de registradores vetoriais, que podem conter uma pequena matriz de dados. Por conterem muitos dados, os registros vetoriais permitem que operações envolvendo arrays sejam realizadas muito rapidamente. Os registradores vetoriais foram usados pela primeira vez em supercomputadores caros e de alto desempenho, mas agora estão se tornando disponíveis em microprocessadores, onde são usados com grande vantagem em operações gráficas intensivas.

Um processador geralmente tem dois conjuntos de registradores de uso geral, um otimizado para operações de ponto flutuante e outro para operações inteiras. Não surpreendentemente, estes são chamados de registos de números inteiros e de ponto flutuante.

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

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

Quando você olha para a janela Registros , você verá entradas como EAX = 003110D8.

O símbolo à esquerda do sinal = é o nome do registo, EAX, neste caso. O número à direita do = sinal representa os conteúdos do registo.

A janela Registos permite-lhe fazer mais do que apenas visualizar o conteúdo de um registo. Quando você está no modo de quebra em código nativo, você pode 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 do programa ou alguma outra consequência indesejada. Infelizmente, uma explicação detalhada dos conjuntos de registro dos vários processadores Intel e compatíveis com Intel vai muito além do escopo desta breve introdução.

Registar Grupos

Para reduzir a desordem, a janela Registros organiza os registros em grupos. Se clicar com o botão direito do rato na janela Registos , verá um menu de atalho contendo uma lista de grupos, que pode apresentar ou ocultar como entender.

Registrar bandeiras

Para processadores Intel x86, você pode ver os seguintes sinalizadores na janela Registros . Durante uma sessão de depuração, também se pode editar esses sinais.

Flag Definir valor
Overflow OV = 1
Direction PARA CIMA = 1
Interromper EI = 1
Assinar PL = 1
Zero ZR = 1
Transporte auxiliar CA = 1
Parity PE = 1
Transportar CY = 1