OPERAÇÕES EXECUTADAS PELO HARDWARE DA MÁQUINA
Autor: Sergio Santos | Publicado: 2011-08-30T07:42:00-07:00

Todo computador precisa ser capaz de executar operações aritméticas. A notação abaixo, da linguagem de montagem do MIPS,add a, b, cinstrui o computador a somar duas variáveis&nbsp;&nbsp;b e c, colocando o resultado da soma em a. Esta notação é extremamente rígida e muito limitada, na medida em que cada instrução aritmética do MIPS executa apenas uma operação e precisa sempre referenciar exatamente três variáveis. Por exemplo, suponha que desejemos colocar a soma de b, c, d e e na variável a.
Linguagem de montagem do MIPS
CategoriaInstruçãoExemploSignificadoComentário
Aritméticaaddadd a, b, ca = b + cSempre três operandos
subtractsub a, b, ca = b –cSempre três operandos


A sequência de intruções a seguir adiciona as variáveis acima referenciadas:

add a, b, c # A soma de b e c é colocada em a.
add a, a, d # A soma de b, c e d é colocada em a.
add a, a, e # A soma de b, c d e e está agora em a.

Portanto, gastamos três instruções para obter a soma de quatro variáveis.
As palavras à direita do símbolo do "jogo da velha" (#) em cada uma das linhas acima são os comentários, muito importantes para os leitores humanos e solenemente ignorados pelo computador. Observe que, ao contrário de outras linguagens, cada linha desta linguagem pode conter no máximo uma instrução. Outra diferença é que os comentários sempre terminam no final de uma linha.Intuitivamente, uma operação como a adição possui três operandos: os dois números a serem somados e um lugar para colocar o valor da soma. Exigir que cada instrução tenha exatamente três operandos, nem mais nem menos, segue a filosofia de manter o hardware tão simples quanto possível: o hardware para realizar operações aritméticas sobre um número variável de operandos é mais complicado do que aquele que trata com um número fixo de variáveis. Essa situação ilustra o primeiro dos quatro princípios básicos do projeto do hardware:
Princípío de projeto 1: A simplicidade é favorecida pela regularidade.

Podemos agora mostrar, nos dois exemplos que se seguem, as relações dos programas escritos em linguagem de alto nível para os programas escritos nesta notação mais primitiva.
Compilação de dois comandos de atribuição em C para linguagem de montagem do MIPSExemploO segmento a seguir, de um programa em C, contém cinco variáveis, a, b, c, d e e:
a = b + c;d = a - e;
A tradução das instruções em C para linguagem de montagem do MIPS é realizada por um compilador. Mostre o código MIPS, produzido pelo compilador C.
Solução
Uma instrução aritmética do MIPS opera sempre sobre dois operandos-fonte, e coloca o resultado em um operando-destino. Portanto, os dois comandos C acima são compilados diretamente nas duas instruções da linguagem de montagem do MIPS, mostradas a seguir:
add a, b, csub d, a, e
Compilação de uma declaração C complexa.ExemploUm comando em C um pouco mais complexo que o anterior é apresentado a seguir, e contém cinco variáveis f, g, h, i e j:
f = (g + h) - (i + j);
Qual o código MIPS produzido pelo compilador?
_______________________________________________________________________________ReferênciaPATTERSON A. David &amp; HENNESSY L. John. Organização e projeto de computadores. A interface HARDWARE/SOFTWARE. 2ed. LTC - Rio de Janeiro - 2000.
Por mim adaptado.Enquanto adaptava este texto ouvia Erykah Badu..._______________________________________________________________________________Infelizmente na próxima QUARTA (31 de agosto) não poderei comparecer ao campus. Esta aula será compensada da seguinte maneira:No dia 14 de setembro ficaremos juntos até às 22:20;No dia 21 de setembro ficaremos juntos até às 21:30._______________________________________________________________________________Comentem este post.