AULA 5 - Microprocessadores - Graduação
CONJUNTO DE INSTRUÇÕES
Um programador de linguagem de alto nível normalmente conhece muito pouco acerca da arquitetura da máquina que está usando.
O conjunto de instruções da máquina é o limite em que o projetista de CPU e o programador de baixo nível enxergam, da mesma máquina.
Implementar uma CPU é uma tarefa que envolve, em grande parte, implementar um conjunto de instruções de máquina.
Já programar em linguagem de máquina (na verdade, em linguagem de montagem, Assembly) exige um conhecimento acerca do conjunto de registradores da CPU, a estrutura de memória, os tipos de dados disponíveis na máquina e o funcionamento da ULA.
Porém, da descrição do conjunto de instruções à uma compreensão sobre o funcionamento da CPU, há um longo caminho.
CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA
A operação de uma CPU é determinada pelas instruções que ela executa, conhecidas como instruções de máquina.
A coleção de instruções que uma determinada CPU é capaz de executar é conhecida como conjunto de instruções da CPU.
Elementos de instrução de máquina
Cada instrução deve conter toda a informação necessária para que a CPU possa executá-la.
A figura acima ajuda a definir os elementos da instrução:
- Código de operação (OPCODE) - Especifica a operação a ser efetuada (por exemplo, ADD, ou E/S, etc). A operação é especificada por um código binário.
- Referência a operando fonte - a operação pode envolver um ou mais operandos fonte, ou seja, que constituem dados de entrada para a operação.
Exemplos:
- operação com um único operando: INV(A)
- operação com dois operandos: ADD(A,B)
- operação com três operandos:
- Referência a um operando de destino - a operação pode eventualmente produzir um resultado, que deverá ser enviado a um endereço de memória, ou registrador
- Endereço da próxima instrução - indica aonde a CPU deve buscar a próxima instrução (memória principal ou virtual), depois que a instrução corrente for completada, quando for o caso.
Os operandos fonte e destino podem estar localizados em:
- Memória principal ou virtual - implica em busca na memória RAM, ou no HD (quando virtual)
- Registrador da CPU - se houver apenas um registrador, a referência a ele poderá ser implícita. Quando há acumulador, a referência a ele é default. Caso hajam vários registradores, normalmente a referência a cada um, individualmente, é feita por um número inteiro correspondente.
