Arquitetura de Computadores: UC, Instruções e Assembler

Classificado em Computação

Escrito em em português com um tamanho de 2,95 KB

Questão 6: Decodificação de Instruções e Formatos

Explique de maneira geral como ocorre a decodificação de instruções efetuada pela Unidade de Controle (UC) da CPU. Comente sobre OPcodes e o formato de instruções.

R: Instruções sempre têm um OPcode que indica o que a instrução faz. Pode haver zero, um, dois ou três endereços presentes. Existem quatro formatos comuns de instrução:

  • Instrução sem endereço;
  • Instrução de um endereço;
  • Instrução de dois endereços;
  • Instrução de três endereços.

Cada instrução é executada como uma sequência de três fases pela UC:

  1. Acesso à memória (fetch);
  2. Decodificação;
  3. Execução.

A instrução é inicialmente acessada na memória e transferida para o interior da CPU, mais especificamente num registrador especial da unidade de controle chamado de RI (Registrador de Instrução). Uma vez no RI, a instrução é interpretada por um circuito decodificador. Finalmente, ela é executada. A sequência apropriada de sinais é gerada pela unidade de controle, resultando nas transferências de dados e operações apropriadas.

Questão 7: O que é um Montador (Assembler)?

R: O Assembler atua como um tradutor do código escrito na linguagem Assembly para linguagem de máquina, substituindo as instruções e variáveis pelos códigos binários e endereços de memória correspondentes. Os compiladores de várias linguagens de alto nível fazem a compilação dos programas em duas etapas: na primeira, transformam o código-fonte em código Assembly e, em seguida, geram o binário com a ajuda de um Assembler.

Questão 8: Funcionamento de um Montador (Assembler)

Explique como funciona um montador para uma determinada arquitetura.

R: A maioria dos assemblers é de duas passagens:

  • Passagem um: Dedicada a montar uma tabela de símbolos para rótulos, literais e identificadores declarados. Os símbolos podem ser mantidos sem ordenação e pesquisados linha por linha, ordenados e pesquisados via busca binária, ou processados por uma operação de hash. O hashing é usualmente o melhor método.
  • Passagem dois: Realiza a geração de código.

Algumas pseudo-instruções são executadas na passagem um e outras na passagem dois.

Questão 9: Dependência da Linguagem Assembly

Por que a linguagem Assembly é dependente de arquitetura?

R: Porque os processadores diferem em seus conjuntos de instruções (ISA). Portanto, para cada arquitetura, há uma linguagem de montagem específica que difere no número e tipo de operações suportadas. Além disso, possuem diferentes tamanhos e números de registradores, bem como distintas representações dos tipos de dados armazenados.

Entradas relacionadas: