Вы находитесь на странице: 1из 19

ARQUITETURA E ORGANIZAO DE COMPUTADORES

CODIFICAO DE INSTRUES

Igor Luiz Oliveira de Souza

ARQUITETURA MIPS
Codificao de Instrues
Cada parte da instruo pode ser considerada um nmero individual, e a colocao desses
nmeros lado a lado forma a instruo;
Como os registradores fazem parte de quase todas as instrues preciso haver uma
conveno para mapear nomes de registrador em nmeros;
A verso numrica das instrues de linguagem de mquina, e a sequencia dessas instrues
o cdigo de mquina ou de instrues;
O layout da instruo denominado formato de instruo.

ARQUITETURA MIPS
Formato de Instruo MIPS
A fim de manter os princpios de simplicidade e regularidade, todas as instrues do
MIPS podem ser agrupada em trs formatos bsico:
Instrues registrador registrador (Tipo R);
Instrues envolvendo valor imediato ou transferncia de dados (Tipo I);
Instrues de desvio (Tipo J);

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo R
O formato tipo registrador registrador tem os seguintes campos:
6 bits

5 bits

5 bits

5 bits

5 bits

op

rs

rt

rd

shamt

6 bits
funo

op: cdigo da operao bsica da instruo (opcode);


rs: registrador do primeiro operando de origem;
rt: registrador do segundo operando de origem;
rd: registrador do operando destino;
shamt: utilizado caso haja necessidade de realizar um deslocamento (op. lgicas);
funo: seleciona a variante especfica da operao no campo op.

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo R
Tabela Registradores:
Num. Registradores

Num. Registradores

$t0 = 8

Cdigo de Operao Tipo R:


Instruo

op

Funo

$s0 = 16

add

32

$t1 = 9

$s1 = 17

sub

34

$t2 = 10

$s2 = 18

slt

42

$t3 = 11

$s3 = 19

jr

$t4 = 12

$s4 = 20

$t5 = 13

$s5 = 21

$t6 = 14

$s6 = 22

$t7 = 15

$s7 = 23

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo R
Ex: Como ficaria o formato da instruo : add $t0, $s1, $s2 ?
6 bits
0

5 bits

5 bits

17

18

op: 0;
rs: $s1 = 17 ;
rt: $s2 = 18;
rd: $t0 = 8;
end. Deslocamento: no se aplica;
funo: 32.

5 bits

5 bits

6 bits
32

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo R
Ex: Como ficaria o formato da instruo : add $t0, $s1, $s2 em binrio?
6 bits

5 bits

5 bits

000000

10001

10010

5 bits
01000

5 bits
00000

6 bits
100000

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo I
O formato tipo I tem os seguintes campos:
6 bits
op

5 bits

5 bits

16 bits

rs

rt

constante ou deslocamento

op: cdigo da operao bsica da instruo (opcode);


rs: registrador do primeiro operando de origem;
rt: registrador do segundo operando de origem *;
constante ou deslocamento: valos constante a ser operado ou deslocamento.
* Na instruo lw o significado do campo rt especifica os registrador de destino, que recebe o resultado do
load;

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo I
Tabela Registradores:
Num. Registradores

Num. Registradores

$t0 = 8

Cdigo de Operao Tipo I:


Instruo

op

$s0 = 16

lw

35

$t1 = 9

$s1 = 17

sw

43

$t2 = 10

$s2 = 18

beq

$t3 = 11

$s3 = 19

bne

$t4 = 12

$s4 = 20

addi

$t5 = 13

$s5 = 21

$t6 = 14

$s6 = 22

$t7 = 15

$s7 = 23

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo I
Ex: Como ficaria o formato da instruo : lw $t0 , 32($s3) ?
6 bits

5 bits

35

19

op: 35;
rs: $s3 = 19 ;
rt: $t0 = 8;
deslocamento: 32;

5 bits
8

16 bits
32

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo I
Ex: Como ficaria o formato da instruo : lw $t0 , 32($s3) em binrio?
6 bits

5 bits

5 bits

100011

10011

01000

16 bits
0000 0000

0010

0000

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo I
Ex: Como ficaria o formato da instruo : bne $s0, $s1, Else ?
6 bits
5

5 bits

5 bits

16 bits

16

17

Else

op: 5 (bne);
rs: $s0 = 16 ;
rt: $s1 = 17;
deslocamento: endereo do rtulo Else;

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo J
O formato tipo J tem os seguintes campos:
op
6 bits

endereo de salto
26 bits

op: cdigo da operao bsica da instruo (opcode);


endereo de salto: endereo da instruo para onde o programa deve ser desviado.

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo J
Cdigo de Operao Tipo J:
Instruo

op

ARQUITETURA MIPS
Formato de Instruo MIPS Tipo J
Ex: Como ficaria o formato da instruo : J Loop ?
2
6 bits

Loop
26 bits

op: 2;
endereo de salto: endereo do rtulo Loop.

ARQUITETURA MIPS
Formato de Instruo MIPS
Como ficaria o formato das instrues ?
sub $t0 , $t1, $t2

OP
0

sw $s0, 8($s1)
lw $s1, 4($t1)
addi $t0, $t7, 3

RT

RS
9

OP

RS

43

17

10
RT
16

OP

RS

35

OP

RS

RT

15

RT
17

RD

funo

0
DESLOC
8
DESLOC
4
DESLOC
3

34

ARQUITETURA MIPS
Formato de Instruo MIPS
Converta para linguagem de mquina, sabendo que o programa abaixo est
armazenado no endereo 50.
50 add...
54 L1: sub...
58 slt...
62 beq...
66 bne...
70 J L1

2
OP

54
endereo

ARQUITETURA MIPS
Formato de Instruo MIPS
Converta para Assembly:

OP

RS

RT

OP

RS

RT

35

OP

DESLOC

beq $t1, $t0, 48

48
DESLOC

lw $t0, 4($t1)
4

RS

RT

RD

10

funo
0

42

slt $t2, $t0, $t1

ARQUITETURA MIPS
Formato de Instruo MIPS
Qual o programa em linguagem de montagem que corresponde s instrues de
mquina abaixo?
8000
8004
8008
8012

add $s5, $s3, $s4

19

20

21

32

0
35

15

16

17

34

11

12

12

lw $t4, 12($t3)

15

19

bne $t7, $s3, 8020 (Exit)

8016

8004

8020

Loop:

sub $s1, $t7, $s0

J 8004 (Loop)

Вам также может понравиться