Prof. Wilton O. Ferreira
Universidade Federal Rural de Pernambuco – UFRPE
1° Semestre/2012
Conjunto de Instruções
Conteúdo
Operações do Hardware do Computador
Representando Instruções no Computador
Operações Lógicas
Instruções para Tomada de Decisões
Introdução
Para controlar o hardware de um computador, é preciso falar
sua língua.
As palavras da linguagem de um computador são chamadas
instruções, e seu vocabulário é denominado Conjunto de
Instruções.
No contexto de Hardware as instruções podem ser
representadas utilizando dois padrões que são:
top-down
bottom-up
Introdução
As linguagens de computadores são semelhantes aos dialeto
humano, logo quando aprende uma linguagem fica fácil
entender as outras.
Os computadores são construído seguindo um
mesmo princípio por isso torna possível facilitar a
criação de novas linguagens
Os Engenheiros de Sistemas quando definem uma
linguagem não o faz pela sua facilidade e ou recursos
mais por um conjunto de fatores que vão alem destas
informações. Fatores como a facilidade de
manipulação de recursos de hardware pode ser um
elemento para tais escolhas.
Introdução
Através de métodos lógicos formais é possível ver a existência
de conjunto de instruções que são adequados para controlar e
causar a execução de qualquer sequencia de operação.
A simplicidade do equipamento é uma consideração tão valiosa
para os computadores da década iniciadas no ano 2000
quanto foi para os da década de 1950.
Vale resaltar que para melhor entender os hardware de hoje
precisamos passar um pouco pela história e evolução destas
tecnologias.
Introdução
Neste tema abordaremos linguagens de alto e baixo nível.
Teremos como conjuntos de instruções escolhidas o MIPS
que fora criado desde a década de 1980.
Iremos destrinchar o conjunto de instrução MIPS bem como
Operações do Hardware do
Computador
Todo computador precisa ser capaz de realizar aritmética.
A Notação em assembly do MIPS
add a , b , c
Instrui um computador para somar as duas variáveis de b e c para
colocar o valor na variável a.
Essa notação é rígida no sentido de que cada instrução aritmética
do MIPS realiza apenas uma operação e sempre precisa de três
variáveis.
Operações do Hardware do
Computador
Supondo que queiramos colocar a soma de três
variáveis em uma quarta variável. A sequencia de
instruções a seguir soma as quatro variáveis:
add a , b , c
#A soma b + c é colocada em a
add a , a , d
#A soma b + c + d agora está em a.
add a, a , a
#A soma b + c + d + e agora está em a.
Assim, são necessárias três instruções
para realizar a soma de quatro variáveis.
As apavras à direita do símbolo # em cada uma dessas linhas são comentários para o leitor humano, e o computador as ignora
Operações do Hardware do
Computador
Diferente de outras linguagem de programação o conjunto de
instrução MIPS contem apenas uma instrução por linha. Outras
diferenças em relação a linguagem como C por exemplo é que os
comentários acaba sempre no final de uma linha.
O número natural de operando para uma operação como
a adição é três: os dois números sendo somados e um
local para colocar o resultado da soma.
Exigir que cada instrução tenha exatamente três operações, nem mais nem menos, está de
acordo com a filosofia de manter o hardware simples: hardware para um numero variável de
operando é mais complexo do que hardware para um número fixo de operando.
Operações do Hardware do
Computador
A situação discutida anteriormente ilustra o primeiro dos
quatros princípios básicos de projeto de hardware:
Principio de Projeto 1: simplicidade favorece a regularidade
A seguir serão mostrados os relacionamentos dos programas
escritos em linguagens de programação de mais alto nível
com os programas nessa notação mais primitiva.
Operações do Hardware do
Computador
COMPILANDO DUAS INSTRUÇÕES DE ATRIBUIÇÃO C NO MIPS
Este segmento de um programa em C contém as cinco variáveis a, b, c, d, e . Como o java
evoluiu a partir da linguagem C, este exemplo e os próximos funcionam para qualquer uma
dessas linguagens de programação de alto nível:
a = b + c;
d = a – e;
A tradução de C para as instruções em linguagem assembly do MIPS é realizada pelo
compilador. Mostre o código do MIPS produzido por um compilador.
Pergunta
Uma instrução MIPS opera com dois operandos de origem e coloca o resultado em um
operando de destino. Logo, as duas instruções simples anteriores são compiladas
diretamente nessas duas instruções em assembly do MIPS:
add a , b , c
sub d , a , e
Resposta
Operações do Hardware do
Computador
COMPILANDO UMA ATRIBUIÇÃO C COMPLEXA NO MIPS
Uma instrução um tanto complexa contém as cinco variáveis f, g, h, i e j:
f = (g + h) – (i + j);
O que um compilador C poderia produzir?
O compilador precisa desmembrar essa instrução em várias instruções assembly, pois comente uma operação é realizada por instrução MIPS. A primeira instrução MIPS calcula a soma de g e h. temos de colocar o resultado em algum lugar, de modo que o compilador crie uma variável temporária, chamada t0:
add t0 , g , h # variável temporária t0 contém g + h
Embora a próxima operação seja subtrair, precisamos calcular a soma de i e j antes de podermos subtrair. Assim, a segunda intrução coloca a soma de i e j em outra variável temporária criada pelo compilador, chamada t1:
add t1 , i , j # variável temporária t1 contém i + j
Finalmente, a instrução de subtração subtrai a segunda soma da primeira e coloca a diferença na variável f, completando o código compilado: