Sie sind auf Seite 1von 62

Infra-estrutura de Tecnologia da Informao

Bacharelado em Sistemas de Informao 2 semestre Turma A 5 e 6 aulas 02 e 09/09/2013 Prof. Paulo Rangel paulo.rangel@tyaro.com.br

Infra-estrutura de TI
Contedo previsto Conjunto de Instrues e Endereamento
(referencia: Livro Arquitetura de Computadores de

Behrooz Parhami, Capitulo 5)

Conjunto de instrues e endereamento


Introduo Viso Abstrata do Hardware Formatos das Instrues Instrues Aritmticas e Lgicas Bsicas

Instrues de Carga (Load) e Armazenamento (Store)


Instrues de Salto (Jump) e Desvio (Branch)

Modos de endereamento
Instalando o Mars 4.3

Introduo
Conjunto de instrues bsicas para ajudar no

entendimento dos elementos de instrues de um processador; Adotaremos o MiniMIPS, baseado no Assembler dos processadores MIPS; Como ferramenta IDE (Integrated Development Environment) adotaremos o Mars4.3 da Missouri State University - EUA. Sendo software Open Source, o Professor disponibilizar cpia e orientao para que os alunos instalem em seus computadores;

Introduo
Os processadores MIPS, produzidos pela MIPS

Computers Systems, Inc., so usados em aplicaes tais como:


Computadores da Silicon Graphics;
Sistemas embarcados; Dispositivos com Windows CE; Roteadores da Cisco Videogames como Nintendo 64 e PlayStation.

Viso abstrata do Hardware


Viso Abstrata do Hardware Formatos das Instrues Instrues Aritmticas e Lgicas Bsicas Instrues de Carga (Load) e Armazenamento (Store)

Instrues de Salto (Jump) e Desvio (Branch)


Modos de endereamento

Viso abstrata do Hardware


Os automveis, em certa medida, possuem suas

interfaces padronizadas, que nos permitem controlar e a verificar subsistemas crticos (leo, temperatura, combustvel, velocidade, etc.) e assim conduzi-los, mesmo veculos novos que no conhecemos, apesar de suas ligeiras diferenas;

Viso abstrata do Hardware


Analogamente aos carros, a interface dos processadores

so o seu conjunto de instrues; O MiniMips possui um conjunto de instrues semelhantes a maioria dos processadores modernos; Elas so do tipo carga / armazenamento (load /store); Os dados devem ser carregados em registradores antes de serem processados, o resultados tambm so armazenados em registradores e depois transferidos para a memria;

Viso abstrata do Hardware


Para entender e usar o MiniMips, temos que

compreender:
O mtodos de armazenamento na memria;
As funes das instrues de carga e armazenamento;

Tipos de operaes permitidas sobre os elementos de dados

mantidos nos registradores e; Um nmero de diversas instrues que permitem uma programao eficiente;

Viso abstrata do Hardware

Viso abstrata do Hardware


O programador de linguagem assembler esta interessado:
Nos registradores, Nas posies de memria onde os dados podem ser

armazenados, Nas instrues de mquina que operam e armazenam os dados em registradores ou na memria

Viso abstrata do Hardware


O nosso estudo estar centrado nas instrues bsicas

processadas pela EIU (execution and integer unit); A EIU tem 32 registradores de uso geral, cada um com 32 bits que podem armazenar endereos de memria; A ULA (Unidade Lgica/Aritmtica), executa somas, subtraes e operaes lgicas; Uma Unidade aritmtica especial executa as divises e multiplicaes, cujos resultados utilizam registradores especiais (Hi e Lo) de onde so movidos para os registradores de uso geral.

Registradores e tamanho dos dados no MiniMips

Viso abstrata do Hardware


Consideraes finais: Usaremos em nossos exerccios apenas os registradores de $8 a $25, j que os demais possuem destinaes especificas que no sero discutidas em nosso trabalho; Para nossos estudos, assumiremos que uma palavra armazena uma instruo ou um nmero inteiro com sinal, mas sabemos que pode armazenar inteiros sem sinal, nmeros de ponto flutuante ou strings (ASCII);

Formato das Instrues

http://courses.missouristate.edu/kenvollmar/mars/download.htm

Formato das Instrues

http://courses.missouristate.edu/kenvollmar/mars/download.htm

Formato das Instrues


Uma instruo tpica :

Add $t8, $s2, $s1


Que poderia ser matematicamente da seguinte forma:

$t8 = $s2 + $s1

Formato das Instrues

Formato das Instrues


Qual sequncia de comandos para executar a equao

g = ( b+c) (e+f)?
A sequncia de comandos para executar a equao seria:

Vale registrar que o smbolo # representa um comentrio que ignorado pelo processador

Formato das Instrues


Quando programamos em linguagem de mquina, temos

que fornecer valores inteiros para determinar endereos de memria ou constantes numricas. Eles devem ser nos formatos decimal (base 10) ou hexadecimal (base 16), sendo convertidos para o formato binrio para processamento da mquina:

Observe que o valor hexadecimal precedido de 0x para diferencia-lo de

um valor decimal ou de um nome de varivel ou de uma string.

Formato das Instrues


Instrues de MiniMIPS disponveis em 3 formatos:

Formato das Instrues


Os 3 formatos do MiniMIPS so comuns nos projetos dos

processadores RISC (Reduced instruction-set computer); Existem 64 cdigos da operao em conjuntos no sobrepostos que permitem ao hardware reconhecer a operao e assim tratar o restante dos campos; Em nossos estudos no discutiremos a questo do quantidade de deslocamento nas instrues tipo registrador;

Instrues Aritmticas e Lgicas bsicas


Estas instrues foram discutidas e trabalham com os

registradores contendo palavras inteiras (32bits):

Carga de valor para um registrador:


Li $t1, 10 # carrega 10 (decimal) em $t1

Instrues Aritmticas e Lgicas bsicas


Escreva um programa em assembler minimips para calcular

as seguintes equaes:
a=b+c d = (e + f) (g + h) i=a+d j = ( b + h) ( c + e) + (g f)
Considerando que:

b = 20, c = 5, e = 8, f = 7, g = 12, h =16

Fazer e entregar ao Professor!

Instrues Aritmticas e Lgicas bsicas


Instrues lgicas operam bit-a-bit em um par de

operadores. As instrues abaixo esto presentes no MiniMips:

Lgica Binria e lgebra Booleana


Sculo III a.C. - O matemtico indiano Pingala inventou o sistema

de numerao binrio; 1703 - Gottfried Leibniz desenvolveu a lgica em um sentido formal e matemtico, utilizando o sistema binrio. Em seu sistema, uns e zeros tambm representam conceitos como verdadeiro e falso, ligado e desligado, vlido e invlido; 1854 - O matemtico ingls George Boole (1815-1864) publicou os princpios da lgica booleana, onde as variveis assumem apenas valores 0 e 1 (verdadeiro e falso), que passou a ser utilizada a partir do incio do sculo XX.

Lgica Binria e lgebra Booleana

Lgica Binria e lgebra Booleana

Lgica Binria e lgebra Booleana

Lgica Binria e lgebra Booleana

Instrues Aritmticas e Lgicas bsicas


Escreva um programa em assembler minimips para calcular

as seguintes equaes:
a=b c d=ef i= g h j = ( ( a d ) )

Considerando que:

b = 15, c = 6, e = 9, f = 4, g = 10, h =13

Fazer e entregar ao Professor, calculando o resultado!

Como calcular nmeros Binrios


Mtodo utilizando a lgica Para demonstrar o primeiro mtodo de resolver temos alguns passos a seguir, faremos uma contagem com nmeros mltiplos de dois (sempre iniciando do numero 1) da seguinte forma: 1 2 4 8 16 32 64 128 256 ... vale lembrar que os mltiplos devem ser utilizados de acordo com o numero que pretende-se a converso - nesse caso paramos com o nmero 256 que maior que o numero que pretendemos converter. Nossa escala "pronta" ficar da seguinte forma: 256 128 64 32 16 8 4 2 1 Perceba que quando utilizarmos essa tabela, escrevemos ela da direita para esquerda partindo do numero maior para os menores. Vamos converter o numero 144, ento: 144 - 128 = 16 16 - 16 = 0 Nesse mtodo utiliza-se o numero pretendido para a converso e subtrai-se o primeiro numero menor ou igual a ele que pertence a tabela. Aplicando os resultados em nossa tabela 256 128 64 32 16 8 4 2 1 1 1 Perceba que anotamos apenas os mltiplos utilizados (uma vez cada um), agora, para obter a sequencia binria preenchemos com o 0 os mltiplos que no utilizamos

Como calcular nmeros Binrios


Perceba que anotamos apenas os mltiplos utilizados (uma vez cada um), agora, para obter a sequencia binria preenchemos com o 0 os mltiplos que no utilizamos 256 128 64 32 16 8 4 2 1 1 0 0 1 0 0 0 0 A linha inferior nos dar o resultado, logo, 144 base 10, em nmeros binrios igual a 10010000 Nesse sistema de diviso, para obter a prova real somamos os mltiplos utilizados e teremos o numero em sistema decimal novamente, ento: 128 + 16 = 144 Outro mtodo possvel o mtodo matemtico que no abordaremos.

Fonte: http://aprendendomatematika.blogspot.com.br/2012/07/como-calcular-numeros-binarios.html

Como calcular nmeros Binrios


Decimal Binrio 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Hexa Decimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

Instrues Aritmticas e Lgicas bsicas


Instrues que especifiquem diretamente a constante desejada em

uma instruo do tipo I.

No existe a equivalente de subtrao, pois pode-se somar valores

negativos.

Instrues Aritmticas e Lgicas bsicas


Instrues que especifiquem diretamente a constante desejada em

uma instruo do tipo I.

Tambm operam bit-a-bit em um par de operadores, utilizando a

lgica binria / lgebra booleana.

Instrues de Carga (Load) e Armazenamento (Store)


Instrues bsicas de carga e armazenamento transferem uma palavra inteira

(32bits), entre memria e registradores. Cada uma dessas instrues especifica um registrador e um endereo de memria. O registrador, o qual o destino do dado para carga e a origem do dado para o armazenamento, especificado no campo rt de uma instruo no formato I . O endereo de memria especificado em duas partes, que podem ser somadas para formar o endereo: um inteiro de 16 bits com sinal na instruo uma constante de deslocamento, que somada ao valor-base no registrador rs . No formato da linguagem assembly, o registrador origem/destino rt especificado primeiro, seguido pela constante de deslocamento e pelo registrador base rs entre parnteses. Colocar rs entre parnteses similar notao de indexao A(i) das linguagens de alto nvel.

Instrues de Carga (Load) e Armazenamento (Store)

O formato da instruo de mquina para lw e sw mostrado na Figura

seguinte, acompanhado pela conveno de endereamento de memria. Note que o deslocamento pode ser especificado como um inteiro absoluto ou atravs de um nome simblico, previamente definido. Instrues de carga e armazenamento que tratam outros tipos de dados, que no palavras, no fazem parte dos nossos estudos. Introduziremos somente uma outra instruo de carga, que nos permite colocar uma constante arbitrria em um determinado registrador.

Instrues de Carga (Load) e Armazenamento (Store)


Introduziremos somente uma outra instruo de carga, que nos permite

colocar uma constante arbitrria em um determinado registrador. Uma constante pequena, que pode ser representada em 16 bits ou menos, pode ser carregada em um registrador atravs de uma nica instruo a d d i, cujo outro operando o registrador $zero (o qual possui sempre 0). Uma constante maior deve ser colocada em um registrador em dois passos: os 16 bits superiores so carregados na metade superior do registrador, atravs da instruo de "carga imediata acima" (load upper immediate l u i ) e os 16 bits inferiores so ento inseridos atravs de uma instruo "ou imediato" (or immediate o r i ) . Isso possvel pois LUI preenche a metade inferior do registrador destino com 0s, portanto, quando feita a operao OR desses bits com o operando imediato, este simplesmente copiado na metade inferior do registrador.

Instrues de Carga (Load) e Armazenamento (Store)

Instrues de Carga (Load) e Armazenamento (Store)

Instrues de Salto (Jump) e Desvio (Branch)

A 1 instruo um salto simples, o qual fora a sequencia da execuo a

partir do ponto onde ele esta saltando A 2 instruo (salto registrador), especifica um registrador que possui o endereo para onde o controle do programa dever seguir.

Instrues de Salto (Jump) e Desvio (Branch)

A 1 instruo um salto simples, o qual fora a sequencia da execuo a

partir do ponto onde ele esta saltando A 2 instruo (salto registrador), especifica um registrador que possui o endereo para onde o controle do programa dever seguir.

Instrues de Salto (Jump) e Desvio (Branch)

Instrues de Salto (Jump) e Desvio (Branch)


As instrues de desvio condicional, nos permite desviar a execuo a partir

de que condies estejam satisfeitas, o MiniMIPS prov 3 tipos. Tambm existem as funes de comparao e veremos abaixo os 2 tipos que esto disponveis no MiniMIPIS:

Instrues de Salto (Jump) e Desvio (Branch)

Instrues de Salto (Jump) e Desvio (Branch)

Instrues de Salto (Jump) e Desvio (Branch)

Instrues de Salto (Jump) e Desvio (Branch)

Instrues de Salto (Jump) e Desvio (Branch)

Instrues de Salto (Jump) e Desvio (Branch)

Modo de Endereamento

Modo de Endereamento

Modo de Endereamento

Modo de Endereamento
O MiniMIPS tem uma arquitetura de carga/armazenamento: os

operandos devem estar nos registradores antes que eles possam ser processados. As nicas instrues MiniMIPS que referenciam endereos de memria so carga, armazenamento e saltos/desvios. Esse mtodo, combinado com os modos de endereamento, at certo ponto limitados, possibilita-nos um hardware eficiente para executar as instrues MiniMIPS. Existem outros modos de endereamento que no sero discutidos nesse curso. Entretanto, os modos de endereamento utilizados no MiniMIPS so mais do que adequados por comodidade em programao e eficincia dos programas resultantes. Ao todo, 20 instrues MiniMIPS foram introduzidas neste curso, resumidas na Tabela 5.1 para reviso e fcil referncia. Esse conjunto de instrues bastante adequado para compor programas razoavelmente complexos.

Modo de Endereamento

Modo de Endereamento

Infra-estrutura de TI
Referncias recomendadas: TANENBAUM, Andrew S. Sistemas Operacionais

Modernos. 3 Edio. So Paulo: Pearson Prentice Hall, 2010 PARHAMI, Behrooz. Arquitetura de Computadores: de microprocessadores a supercomputadores. So Paulo: McGraw Hill, 2008 Missouri State University EUA
http://courses.missouristate.edu/kenvollmar/mars/download.htm ultimo acesso em 09/03/2013.

Infra-estrutura de TI
DVIDAS

Exerccios Em classe
Quais so e para que servem as funes de salto (jump) e de desvio

(branch)? Quais so e para que servem as instrues de carga (load) e de armazenamento (store)? Quanto aos argumentos utilizados, qual a principal diferena entre funes aritmticas e lgicas?

Exerccios Em classe
O trecho de programa seguinte computa um resultado f(n) no

registrador $s l , quando um dado inteiro n no negativo est no registrador $s0. Adicione comentrios apropriados s instrues e caracterize f(n).

Exerccios Em classe
O trecho de programa seguinte computa um resultado f(n) no

registrador $s l , quando um dado inteiro n no negativo est no registrador $s0. Adicione comentrios apropriados s instrues e caracterize f(n).

Das könnte Ihnen auch gefallen