Curso Livre de Arquitetura de Computadores/Caderno 9: Conjuntos de Instruções
Principais pontos
[editar | editar código-fonte]Os elementos essenciais de alguma instrução do computador são chamados de opcode (código de operação). Nele especifica:
- Qual operação será realizada;
- Referências de operando de origem e destino que vão especificar locais de entrada e saída para a operação;
- Referência da próxima instrução, normalmente é implícita.[1]
Ainda sobre os opcodes (código de operação), eles especificam operações nas seguintes categorias:
- Operações aritméticas e lógicas;
- Movimentação de dados entre dois registradores;
- Registrador e memória ou dois locais de memória;
- Entrada e saída;
- E por fim o controle sobre a operação;[1]
Um recurso arquitetural comum nos processadores é o uso de pilha, que pode ou não estar visível aos programadores. As pilhas são estruturas que sempre que chega um novo processo ele é posto nessa pilha, quando o processador for pegar o processo, ele usará alguns algoritmos para determinar se pegará o primeiro da pilha, o ultimo, ou mais raro em pilhas, mas randomicamente.[1]
A estrutura de pilha é nirmalmente utilizada para gerenciar chamadas e retornos, por ter ordem lógica de chamadas. As operações básicas da pilha são PUSH, POP, que significa colocar um dado na pilha e remover um dado da pilha respectivamente.[1]
Características das instruções de máquina
[editar | editar código-fonte]A operação do processador é determinada pelas instruções que ele executa, conhecidas como instruções de máquina ou instruções do computador. A coleção de diferentes instruções que o processador pode executar é conhecida como conjunto de instruções do processador.[1]
Elementos de uma instrução de máquina
[editar | editar código-fonte]- Código de operação: : Especifica a operação a ser realizada (por exemplo, ADD, E/S). A operação é especificada por um código binário, conhecido como código de operação, ou opcode (operation code);
- Referência à operando fonte: A operação pode envolver um ou mais operandos fontes, ou seja, operandos que são entradas para a operação;
- Referência à operando destino: a operação pode produzir um resultado;
- Referência à próxima instrução: : Isso diz ao processador onde buscar a próxima instrução após o término da execução desta instrução.[1]
Operandos fonte e destino podem estar em uma destas áreas:
- Memória principal ou virtual;
- Registrador do processador;
- Imediato;
- Dispositivo de e/s.[1]
Representação da instrução
[editar | editar código-fonte]Ë possível escrever um programa em linguagem de máquina em forma simbólica. Cada opcode tem uma representação binária fixa e o programador especifica o local de cada operando simbólico. Por exemplo:
- ADD: Faz adição;
- SUB: Faz subtração;
- MUL: Faz multiplicação;
- DIV: Faz divisão;
- LOAD: Carrega os dados na memória;
- STOR: Armazena os dados na memória.[1]