Anda di halaman 1dari 68

Conjunto de Instrues

MIPS
ENGENHARIA DE COMPUTAO
UNIVERSIDADE SAGRADO CORAO
PROF. M. ENG. ELAINE CECLIA GATTO

1. INTRODUO

Instrues:
So

Conjunto de instrues:

as palavras da linguagem de mquina

o vocabulrio da linguagem de mquina

Todo processador construdo com base nos mesmos princpios


fundamentais, mesmas tecnologias de hardware e realiza as mesmas
operaes bsicas.

1. INTRODUO

Objetivo no projeto de construo de microprocessadores:


Encontrar

um conjunto de instrues que facilite tanto a construo


do hardware quanto a do compilador e, ao mesmo tempo, maximize
a performance e minimize os custos

2. OPERAES EXECUTADAS PELO


HARDWARE DA MQUINA

AFIRMAO:
Todo

processador deve ser capaz de executar instrues aritmticas

Exemplo:
add a, b, c
Essa

instruo representa a soma de B com C, armazenando o


resultado em A.

2. OPERAES EXECUTADAS PELO


HARDWARE DA MQUINA

MIPS:
Conjunto
Cada

instruo aritmtica executa apenas uma operao

Precisa

de instrues

sempre referenciar exatamente trs variveis

Exemplo:
Somar

B, C, D, E;

Armazenar

o resultado em A

2. OPERAES EXECUTADAS PELO


HARDWARE DA MQUINA

Soluo:
add a, b, c
add a, a, d
add a, a, e

Na primeira linha soma-se B com C e o resultado armazenado em A

Na segunda linha soma-se o resultado que foi armazenado em A com o


valor de D

Na terceira linha soma-se o resultado armazenado em A com o valor de


E

2. OPERAES EXECUTADAS PELO


HARDWARE DA MQUINA

Para realizar a soma de quatro valores, foi necessrio trs instrues

Na linguagem de montagem MIPS, usa-se # para fazer comentrios e


no ponto e vrgula como na linguagem X86 no debug

Em MIPS cada linha da linguagem pode conter apenas uma instruo

ADIO:
Sempre
Dois
Um

possuir trs operandos

nmeros a serem somados (origem)

local de armazenamento (destino)

2. OPERAES EXECUTADAS PELO


HARDWARE DA MQUINA

PERGUNTA:
Porque

trs operandos? Porque no dois operandos como no x86? Ou


porque no instrues com tamanhos de operandos variados?

RESPOSTA:
Objetivo:

manter o hardware to simples quanto possvel

Realizar

operaes aritmticas com um nmero varivel de operandos


mais complexo

Realizar

operaes aritmticas com um nmero fixo de operandos mais

simples

RECORDAR: RISC X CISC

2. OPERAES EXECUTADAS PELO


HARDWARE DA MQUINA
PRINCPIOS
1.

DE PROJETO

A simplicidade favorecida pela regularidade

TABELA 1: ARQUITETURA DO MIPS


Categori
a

Instruo

Aritmtica Add (soma)


Subtract
(subrao

Exemplo

Significado

Comentrio

Add a, b, c

A=b+c

Trs operandos

Sub a, b, c

A=b-c

Trs operandos

2.1. COMPILAO DE DOIS COMANDOS DE ATRIBUIO


EM C PARA LINGUAGEM DE MONTAGEM MIPS

EXEMPLO
Dado

o seguinte cdigo em linguagem de alto nvel (linguagem C).


Traduza-o para linguagem de mquina MIPS.
a = b + c;
d = a e;

SOLUO:
add a, b, c
sub d, a, e

2.1. COMPILAO DE DOIS COMANDOS DE ATRIBUIO


EM C PARA LINGUAGEM DE MONTAGEM MIPS

EXERCCIOS
Dado

o seguinte cdigo em linguagem de alto nvel (linguagem C).


Traduza-o para linguagem de mquina MIPS.
y = x + w;
z = k l;

SOLUO:
??????

2.2 COMPILAO DE UMA DECLARAO C COMPLEXA

EXEMPLO
Dado

o seguinte cdigo em linguagem de alto nvel (linguagem C).


Traduza-o para linguagem de mquina MIPS.
f = (g + h) (i + j);

SOLUO:
add t0, g, h
add t1, i, j
Sub f, t0, t1

2.2 COMPILAO DE UMA DECLARAO C COMPLEXA

EXPLICANDO:
F

= (g + h) (i + j) o mesmo que (foi quebrado em duas partes)

= t0 t1

t0

=g+h

t1

=i+j

t0

e t1 so variveis temporrias, normalmente, so espaos livres


de algum registrador de uso geral

2.2 COMPILAO DE UMA DECLARAO C COMPLEXA

EXERCCIOS
Dado

o seguinte cdigo em linguagem de alto nvel (linguagem C).


Traduza-o para linguagem de mquina MIPS.
w = (y - l) + (z - k);

SOLUO:
????

3. OPERANDOS DE HARDWARE DE MQUINA

Importante:
Operandos
No

de instrues aritmticas no podem ser variveis

h suporte em hardware para esta implementao

Soluo:
Uso

de REGISTRADORES (conjunto especial de localidades de


memria)

3. OPERANDOS DE HARDWARE DE MQUINA

PERGUNTA:
O

que so registradores de acordo com os autores?

RESPOSTA:
So

as primiticas do projeto de hardware que permanecem


visveis ao programador quando o projeto se torna operacional

3. OPERANDOS DE HARDWARE DE MQUINA

Registradores do MIPS
Tamanho

da palavra: 32 bits

Quantidade

de registradores: 32

PERGUNTA:
Qual

a principal diferena entre as variveis de uma linguagem de


alto nvel e os registradores?

RESPOSTA:

a quantidade limitada destes ltimos

3. OPERANDOS DE HARDWARE DE MQUINA

RESTRIO:

Os trs operandos das instrues aritmticas do MIPS precisam ser


escolhidos de um dos 32 registradores de 32 bits

PRNCIPIOS DE PROJETO
2.

Quanto menor, mais rpido

A mquina tornar-se mais lenta com um grande


registradores no hardware, pois aumenta o ciclo do clock

nmero

de

3. OPERANDOS DE HARDWARE DE MQUINA

QUESTIONE-SE:
31

registradores fazem a mquina funcionar mais rpido que 32?

menor mais rpido:


At
A

que ponto isso verdadeiro?

regra no absoluta!!!

3. OPERANDOS DE HARDWARE DE MQUINA

Objetivo do projetista:
Manter

o clock do hardware to pequeno quanto possvel

Questionar-se:
Preciso

que os meus programas tenhm mais registradores


disponveis?

O uso correto dos registradores


desempenho da mquina

fundamental

para

bom

3. OPERANDOS DE HARDWARE DE MQUINA

COMO REFERENCIAR UM REGISTRADOR NO MIPS:


Usar

um $ seguido de dois caracteres

0 a 31 registradores (32 no total)

EXEMPLO (registradores temporrios)


$s0,

$s1, etc.

$t0,

$t1, etc.

3.1. COMPILAO DE UM COMANDO DE


ATRIBUIO EM C USANDO REGISTRADORES

EXEMPLO:
Dada

a linha de cdigo em linguagem C abaixo, qual o cdigo em


linguagem de montagem MIPS?

f = ( g + h ) ( i + j );

RESPOSTA:
O

compilador deve fazer a associao das variveis de um programa


com os registradores do hardware!!!!!

= $s0, G = $s1, H = $s2, I = $s3, J = $s4

3.1. COMPILAO DE UM COMANDO DE


ATRIBUIO EM C USANDO REGISTRADORES

Cdigo em MIPS:
add $t0, $s1, $s2
add $t1, $s3, $s4
sub $s0, $t0, $t1

ENTENDERAM???????

3.1. COMPILAO DE UM COMANDO DE


ATRIBUIO EM C USANDO REGISTRADORES

EXERCCIOS:
Dada

a linha de cdigo em linguagem C abaixo, qual o cdigo em


linguagem de montagem MIPS?
w = (y - l) + (z - k);

RESPOSTA:
???

3. OPERANDOS DE HARDWARE DE MQUINA

Como tratar estruturas de dados?


Estruturas

de Dados podem conter muito mais elementos do que


registradores disponveis no hardware da mquina

Apenas

um pequeno nmero de dados pode ser mantido pelo


processador em seus registradores

memria do computador, no entanto, pode conter milhes de


dados

Concluindo,

estruturas de dados so armazenadas na memria e


no nos registradores.

3. OPERANDOS DE HARDWARE DE MQUINA

IMPORTANTE:
Operaes

aritmticas ocorrem somente entre valores armazenados


em registradores e refrenciados pelas instrues do MIPS

necessrio que haja instrues de transferncia de dados entre a


memria e os registradores

Como fazer para acessar uma palavra na memria?


A

instruo de transferncia de dados deve fornecer o endereo na


memria da palavra a ser acessada

Endereo

= ndice

3. OPERANDOS DE HARDWARE DE MQUINA

LOAD:

a instruo de transferncia de dados que move um dado da


memria para um registrador

Formato da instruo LOAD (lw = load word):


Nome

da operao + registrador a ser carregado + constante


associada a outro registrador (endereamento da memria)

Clculo do endereo da memria:


Constante

+ contedo do registrador associado a ela

3. OPERANDOS DE HARDWARE DE MQUINA

IMPORTANTE:
Uma
O

instruo LW faz uma cpia do dado da memria

dado continua armzenado na memria

Portanto,
O

no feito uma transferencia definitiva

primeiro ndice do array zero

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA

EXEMPLO:
Traduza

o comando de atribuio abaixo, escrito em C, para a


linguagem de montagem do MIPS, em que A um array de 100
palavras.

g = h + a[8];

SOLUO:
G

= $s1, H = $s2; $s3 = endereo-base (endereo inicial do array)

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA

H uma nica operao no trecho de cdigo em C, que a soma!

Um dos operandos da operao est na memria (no caso, o array)

O operando da memria deve ser transferido (copiado) para um


registrador (A[8])

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA

CLCULO DO ENDEREO:
Onde

est, na memria, o elemento do array que preciso transferir?

Endereo

na memria = endereo-base + ndice

valor resultante do clculo tambm deve ser guardado em um


registrador temporrio para uso posterior

Portanto:

lw = $t0, 8 ( $s3) #O registrador temporrio $t0 recebe


a[8]

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA

Agora, o valor de a[8] j est em um registrador temporrio para


manipulao ($t0)

O que precisamos fazer agora? Somar o valor de h com o valor que


est em a[8]

Portanto:

add $s1, $s2, $t0 # g recebe h + a[8]

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA
g = h + a[8];
o mesmo que:

lw = $t0, 8 ( $s3)
add $s1, $s2, $t0

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA

EXERCCIOS:
Traduza

o comando de atribuio abaixo, escrito em C, para a


linguagem de montagem do MIPS, em que A um array de 100
palavras.

w = x + y[4];

SOLUO

??????

3.2. COMPILAO DE UMA ATRIBUIO COM


UM OPERANDO NA MEMRIA

IMPORTANTE:

DESLOCAMENTO:

a constante que aparece na instruo de transferncia de dados

REGISTRADOR-BASE:

o registrador cujo valor armazenado somado a esta constante

3.A INTERFACE
HARDWARE/SOFTWARE

Compilador MIPS
Associa

variveis a registradores

Aloca

em endereos de memria determinadas estruturas de dados


como os arrays

Aloca

espao de memria para programas e dados

Coloca

o endereo inicial nas instrues de transferncia de dados

3.A INTERFACE
HARDWARE/SOFTWARE

RESTRIO DE ALINHAMENTO:
As

palavras precisam sempre comear em endereos que sejam


mltiplos de 4

Porque ocorre?
Quase

todas as arquiteturas endeream bytes individuais (8 bits ou

bytes)
O

endereo de uma palavra deve ser igual ao endereo de um dos


bytes componentes da palavra

endereo de duas palavras sequencias difere sempre de 4


unidades

3.A INTERFACE
HARDWARE/SOFTWARE

Big endian:

uma mquina que enderea bytes e usa o byte mais esquerda


para representar o endereo da palavra

Little endian

uma mquina que enderea bytes e usa o byte mais direita para
representar o endereo da palavra

3.A INTERFACE
HARDWARE/SOFTWARE

O endereamento de bytes afeta a indexao dos arrays

O deslocamento a ser adicionado ao contedo do registrador-base


deve ser 4 x Y, de modo que o elemento do array selecionado pela
instruo load seja a[Y] e no a[Y/4]

3. OPERANDOS DE HARDWARE DE MQUINA

STORE (sw = store word):


Instruo

de armazenamento

Transfere

um dado de um registrador para a memria

Formato:
Nome

da operao + registrador + deslocamento + registrador-base

Endereo do MIPS:
Constante

+ contedo do registrador

3.3. COMPILAO USANDO


INSTRUES DE LOAD E STORE

EXEMPLO:
Dado

o trecho de cdigo em linguagem C abaixo, qual o cdigo de


montagem em linguagem MIPS?

a[12] = h + a[8];

SOLUO:
Uma

nica operao (soma)

Dois

operandos na memria (a[12] e a[8])

3.3. COMPILAO USANDO


INSTRUES DE LOAD E STORE

REFORANDO: MIPS enderea byte

SOLUO COMPLETA:
lw $t0, 32($s3)
add $to, $s2, St0
Sw $to, 48($s3)

DESLOCAMENTOS:
32

pois 4 * 8

48

pois 4 * 12

Os arrays muitas vezes


so acessados com
variveis em vez de
constantes!!!!
O elemento do array
pode mudar durante a
execuo do programa

3.3. COMPILAO USANDO


INSTRUES DE LOAD E STORE

EXEMPLO:
Dado

o trecho de cdigo em linguagem C abaixo, qual o cdigo de


montagem em linguagem MIPS?

z[16] = y + z[12];

SOLUO:
??????

3.4. COMPILAO USANDO UMA


VARIVEL PARA INDEXAR O ARRAY

EXEMPLO:

Dado o trecho de cdigo em linguagem C abaixo, qual o cdigo MIPS


correspondente?
g = h + a[i];

SOLUO:
Instruo

com uma operao (soma)

Instruo

com uma transferncia da memria

3.4. COMPILAO USANDO UMA


VARIVEL PARA INDEXAR O ARRAY

1 passo:

Calcular o endereo de a[i], para isto:


Multiplicar
Fazer
i

o valor do ndice i por 4 (i *4)

a multiplicao (i * 4) usando somas:

+ i = 2i

2i

+ 2i = 4i

add $t1, $s4, $s4 #2*i


add $t1, $t1, $t1 #4*i

Em seguida, obter o
endereo
de
a[i]
somando
$t1
ao
endereo-base de a,
armazenado em #s3
add $t1, $t1, $s3
#a[i] = (4*i+$s3)

3.4. COMPILAO USANDO UMA


VARIVEL PARA INDEXAR O ARRAY

2 passo:

Usar o endereo calculado para carregar a[i] em um registrador


lw $t0,0($t1) #$t0=a[i]

Agora somar:
add $s1, $s2, $t0 #g=h+a[i]

3.4. COMPILAO USANDO UMA


VARIVEL PARA INDEXAR O ARRAY

g = h + a[i];

Cdigo completo:
add $t1, $s4, $s4

#2*i

add $t1, $t1, $t1

#4*i

add $t1, $t1, $s3

#a[i]=(4*i+$s3)

lw $t0,0($t1)

#$t0=a[i]

add $s1, $s2, $t0

#g=h+a[i]

3.4. COMPILAO USANDO UMA


VARIVEL PARA INDEXAR O ARRAY

EXEMPLO:

Dado o trecho de cdigo em linguagem C abaixo, qual o cdigo MIPS


correspondente?
y = x + w[i];

SOLUO:
????

3.B INTERFACE
HARDWARE/SOTWARE

So mantidas nos registradores apenas as variveis usadas com mais


frequencia

As demais so colocadas na memria

SPILLING
DERRAMAMENTO

DE REGISTRADORES:

o processo de colocar na memria as variveis menos usadas

Usa-se instrues de load/store para transferncia M<-->R

3.B INTERFACE
HARDWARE/SOTWARE

O acesso memria mais lento que o acesso registradores

Isto porque a quantidade de registradores menor que os endereos


de memria

Portanto, o acesso aos registradores muito mais rpido que o acesso


memria

3.B INTERFACE
HARDWARE/SOTWARE

INSTRUO ARITMTICA DO MIPS:


Le

dois registradores

Opera

dados lidos

Escreve

o resultado da operao

3.B INTERFACE
HARDWARE/SOTWARE

INSTRUO DE TRANSFERNCIA DO MIPS:


Le

um operando

Escreve
No

um operando

efetua quaisquer operao

3.B INTERFACE
HARDWARE/SOTWARE

INSTRUO DE TRANSFERNCIA DO MIPS:


Le

um operando

Escreve
No

um operando

efetua quaisquer operao

3. OPERANDOS DE HARDWARE DE MQUINA

TABELA 2: OPERANDOS DO MIPS


Nome
32 registradores

Exemplo
$s0, $s1

Comentrios
Posies de acesso rpido para armazenamento de dados.
Os dados devem estar em registradores para que as
operaes aritmticas possam ser relizadas.

Estas posies s so acessadas por instrues de


Memria[0
transferncia de dados.
]
Enderea bytes
230 palavras de memria
Memria[4
Os endereos de palavras consecutivas diferem de 4
]
unidades.

3. OPERANDOS DE HARDWARE DE MQUINA


TABELA 3: Arquitetura do MIPS
Categoria

Instru
o

Exemplo

add

add $s1, $s2,


$s3

Significado

Comentrio

$s1 = $s2 + $s3

Trs operandos
Dados em registradores

subtract

sub $s1, $s2,


$s3

$s1 = $s2 - $s3

Trs operandos
Dados em registradores

load word

lw $s1,
100($s2)

$s1 = Memria[$s2 +
100]

Memria Registrador

store
word

sw $s1,
100($s2)

Memria[$s2 + 100] =
$s1

Registrador Memria

Aritmtica

Transfernci
a de dados

3. OPERANDOS DE HARDWARE DE MQUINA

REGISTRADOR-NDICE:
Outro

nome para o registrador-base

Objetivo:
O

registrador nas instrues de transferncia de dados foi


inventado com o objetivo de guardar o ndice de um array, com o
deslocamento marcando o endereo inicial de tal array

4. REPRESENTAO DE INSTRUES

Mapeamento dos nomes dos registradores em nmeros:


$s0

$s7 = 16 a 23

$t0

a $t7 = 8 a 15

4.1 TRADUO DE UMA INSTRUO NA LINGUAGEM DE


MONTAGEM DO MIPS PARA UMA INSTRUO DE MQUINA

EXEMPLO:
Dada

a instruo MIPS abaixo, converta-a para uma instruo de


mquina

add $t0, $s1, $s2

SOLUO:
0

17

18

32

CAMPO 1

CAMPO 2

CAMPO 3

CAMPO 4

CAMPO 5

CAMPO 6

add

$s1

$s2

$t0

add

4.1 TRADUO DE UMA INSTRUO NA LINGUAGEM DE


MONTAGEM DO MIPS PARA UMA INSTRUO DE MQUINA

Campo 1 e Campo 6:

Campo 2:

Informa o segundo operando-fonte

Campo 4:

Informa o nmero do registrador do primeiro operando-fonte

Campo 3:

Informam ao MIPS que esta instruo uma adio

Contm o nmero do registrador que armazenar o resultado

Campo 5:

No utilizado nesta instruo, portanto, seu valor zero.

4.1 TRADUO DE UMA INSTRUO NA LINGUAGEM DE


MONTAGEM DO MIPS PARA UMA INSTRUO DE MQUINA
0

17

18

32

CAMPO 1

CAMPO 2

CAMPO 3

CAMPO 4

CAMPO 5

CAMPO 6

Tipo de
instruo

Operando-fonte 1

Operando-fonte 2

Resultado
da soma

No utilizado

Tipo de
instruo

add

$s1

$s2

$t0

add

Linguagem de
Mquina

17

18

32

Cdigo de
Mquina

000000

10001

10010

01000

00000

100000

32 bits

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

add

$s1

$s2

$t0

add

instruo

4.1 TRADUO DE UMA INSTRUO NA


LINGUAGEM DE MONTAGEM DO MIPS PARA
UMA INSTRUO DE MQUINA
op

rs

Operao
bsica
OpCode
Cdigo da
Operao
6 bits

rt

shamt

Funct

Operando fonte Operando fonte Registrador


(registrador)
(registrador)
destino
(armazena o
resultado da
operao)

Deslocamento
de bits

Cdigo de
funo Funo.
Variao da
operao

5 bits

5 bits

6 bits

5 bits

rd

5 bits

Problema: manter todas as instrues do mesmo tamanho e de ter um nico formato de instruo
Princpio de projeto 3: Um bom projeto demanda compromisso!
No MIPS toda as instrues tem o mesmo tamanho (em bits), mas permite formatos diferentes!

4.1 TRADUO DE UMA INSTRUO NA


LINGUAGEM DE MONTAGEM DO MIPS PARA
UMA INSTRUO DE MQUINA

Formato R-TYPE ou formato R-FORMAT,


registradores (exemplo dos slides anteriores)

Formato I-TYPE ou I-FORMAT usado na representao de instrues de


transferncia de dados

op

rs

rt

Endereo

6
bits

5 bits

5 bits

16 bits

Registrador Registrador
base
destino

pois

instruo

usa

Uma instruo de load word pode carregar qualquer palavra


dentro da faixa entre o endereo constante no registrador base
(rs) acrescido ou decrescido de 32.768 bytes (ou 8.192
palavras)

4.1 TRADUO DE UMA INSTRUO NA


LINGUAGEM DE MONTAGEM DO MIPS PARA
UMA INSTRUO DE MQUINA

Exemplo:
g

= h + A[8];

lw

$t0, 32($s3) #Registrador temporrio recebe a[8]

op

rs

rt

Endereo

lw

$s3

$t0

32

35

19

32

5 bits

16 bits

6 bits 5
bits

A distino entre os formatos de instrues no MIPS se d pelo valor do


primeiro campo

4.1 TRADUO DE UMA INSTRUO NA


LINGUAGEM DE MONTAGEM DO MIPS PARA
UMA INSTRUO DE MQUINA
Instru
o

Formato

op

rs

rt

rd

shamt

funct

Endere
o

add

Reg

Reg

Reg

32

no
existe

sub

Reg

Reg

Reg

34

no
existe

no
existe

no
existe

no
existe

Endereo

no
existe

no
existe

no
existe

Endereo

lw
I
35
Reg
Reg
REG = o nmero de um registrador entre 0 e 31
sw
I
43
Reg
Reg
ENDEREO = um valor de 16 bits

ADD e SUB tem o mesmo valor no cdigo da operao. O hardware sabe a diferena pelo
campo FUNCT, que no igual para os dois. 0 o cdigo para operao aritmtica.

4.1 TRADUO DE UMA INSTRUO NA


LINGUAGEM DE MONTAGEM DO MIPS PARA
UMA INSTRUO DE MQUINA

Exemplo: Dado o cdigo em linguagem de alto nvel A[300] =


h + A[300], converta-o para cdigo MIPS, faa a
representao de linguagem de mquina e de cdigo de
mquina.
lw $t0, 1200 ($t1)
add $t0, $s2, $t0
sw $to, 1200($t1)

4.1 TRADUO DE UMA INSTRUO NA


LINGUAGEM DE MONTAGEM DO MIPS PARA
UMA INSTRUO DE MQUINA
op

rs

rt

rd

Shamt/endereo

funct

lw

($t1)

$t0

1200

35

1200

100011

01001

01000

0000 0100 1011 0000

add

$s2

$t0

$t0

18

32

000000

10010

01000

01000

00000

100000

sw

($t1)

$t0

1200

43

1200

101011

01001

01000

0000 0100 1011 0000

4.1 TRADUO DE UMA INSTRUO NA LINGUAGEM DE


MONTAGEM DO MIPS PARA UMA INSTRUO DE
MQUINA
Nome

Formato

add

18

19

17

32

add $s1, $s2, $s3

sub

18

19

17

34

sub $s1, $s2, $s3

lw

35

18

17

100

lw $s1, 100($s2)

sw

43

18

17

100

Sw $s1, 100($s2)

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

Todas as instrues do
MIPS tem 32 bits

rd

shamt

funct

Formato das instrues


aritmticas

Tamanho
do campo

Exemplo

Formato
R

op

rs

rt

Formato I

op

rs

rt

Comentrios

endereo

Formato das instrues de


transferncia de dados

4.1 TRADUO DE UMA INSTRUO NA LINGUAGEM DE


MONTAGEM DO MIPS PARA UMA INSTRUO DE
MQUINA

A construo de computadores hoje deve obedecer a dois princpios:


As

instrues so representadas em forma de nmero

Os

programas devem ser armazenados na memria antes de serem


executados

CONCEITO DE PROGRAMA ARMAZENADO

Anda mungkin juga menyukai