Pergunta

Eu ouvi as terminologias:., Registro hardware, cadastre-programa, registrar o arquivo

Qual é a diferença entre todos estes? E em assebmly, qual é o tipo de registo EAX? registo programa?

Foi útil?

Solução

Um registro é uma área de armazenamento dentro da CPU. Aqui estão algumas definições:

  • Um arquivo de registro é uma matriz de registros - veja http://en.wikipedia.org/wiki / Register_file para uma descrição completa.
  • O registo eax é o registo acumulador da família Intel x86 de CPUs. - É o lugar onde matemática inteiro é feito
  • O registo do programa (eu acho que você quer dizer contador de programa) é um registo de propósito específico, que contém o endereço da próxima instrução código de máquina a ser executado

Outras dicas

Um registo é o dispositivo de armazenamento de dados mais básico. Estas são as principais diferenças.

Um arquivo de registro é geralmente uma grande coleção de registros organizados de tal forma um modo que eles são usados ??para cálculos. Em um processador moderno, todos os cálculos são realizados entre os valores armazenados em vários registros em um arquivo de registro.

Um registo hardware geralmente se refere a registros que configuração de armazenamento e informações de status. Isso poderia ser para o processador ou algum dispositivo de hardware externo I / O.

Um registo programa pode referir-se o contador de programa, um registo especial que armazena o local de memória da instrução atual que está sendo executado pelo processador.

um registo é um pequeno pedaço de memória que fica dentro da CPU. e é usado por linguagem assembly para executar várias tarefas.

pode ser que pelo programa de registrá-lo contra média programa?

Bem, você tem registos de uso geral, então você tem registros que têm uso especial (por exemplo, os registos de contador de programa), e você tem vários outros (registros de memória / segmento, SSE).

EAX, EBX, etc. são os registos de uso geral padrão. Você pode usá-los para o que quiser. Normalmente, o valor de retorno é suposto ser colocado em EAX, mas é isso basicamente. Então você tem a EBP stack pointer, que aponta para o início da sua stack. Finalmente, você tem que contador de programa, que aponta para a instrução corrente, EIP. Em x86, existem alguns casos especiais, onde dois registros se fundidos ao fazer 64-bit inteiro cálculos. existem casos mais especiais para as instruções de cordas. Se você está prestes a aprender montagem, o mais fácil seria começar com um PowerPC, que tem mais registros, e você está livre para usar todos eles, sem restrições.

Todos estes registros são de registros de hardware do curso, ou seja, eles estão fisicamente construído em seu CPU;) O lugar onde eles estão é chamado um arquivo de registro

.

O outro tipo de registros que você pode ver é se você tiver uma máquina virtual que usa registros ( Parrot ), você começa "registros virtuais", que são posteriormente atribuídas aos registos reais. Isto é semelhante ao que você pode fazer quando se escreve um compilador, você basicamente assumir uma quantidade ilimitada de registros (ou seja, você gerar um novo em cada uso), e fazer a transformação para registros reais em uma fase diferente (registro de alocação ).

A "hardware registar" também pode se referir a um local dentro de algum dispositivo de hardware. Por exemplo, um UART (porta COM) se parece com um conector em forma de D com 9 ou 25 pinos de fora do armário, mas para o controlador de dispositivo parece que vários registos de configuração, um registo de estado, e registos de dados que prendem o próximo carácter de enviar e o último caractere recebido. (Eu deixei um muito de detalhe lá.)

Na arquitetura x86 esses registos estão normalmente localizados em um espaço de endereço físico especial que é acessado com instruções de I / O. Em outras plataformas, é comum que os registros de hardware a ser mapeado para algum canto do espaço de memória normal. Em ambos os casos, um dos papéis importantes de um sistema operacional e seus drivers de dispositivo é impedir que o código da aplicação da necessidade de conhecer os detalhes de onde os registros de hardware estão localizados eo que eles significam.

Em alguns tipos de dispositivos de hardware, a distinção entre registros de memória e hardware é menos clara. Por exemplo, a placa de vídeo contém um bloco de memória conhecido como o frame buffer que contém os valores de cor e brilho para cada pixel individual. É que a memória de um grande registro de hardware ou é apenas um tampão que tem um efeito colateral interessante?

Em relação à questão, existem dois tipos gerais de registros que você deve considerar:

  • registros do programa
  • registros de hardware

Os registros de hardware são cronometrado (atualizado em carrapatos do relógio) e são utilizados na física projeto de circuito processador.

Os registros do programa são a memória de acesso aleatório e são mantidos em um arquivo de registro localizado na CPU. Montagem / instruções de código de máquina de aceder a estes registos através nomes como% eax,% esp,% RDI,% edi, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top