Академический Документы
Профессиональный Документы
Культура Документы
CODIFICAO DE INSTRUES
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
ARQUITETURA MIPS
Formato de Instruo MIPS Tipo R
Tabela Registradores:
Num. Registradores
Num. Registradores
$t0 = 8
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
ARQUITETURA MIPS
Formato de Instruo MIPS Tipo I
Tabela Registradores:
Num. Registradores
Num. Registradores
$t0 = 8
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
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
48
DESLOC
lw $t0, 4($t1)
4
RS
RT
RD
10
funo
0
42
ARQUITETURA MIPS
Formato de Instruo MIPS
Qual o programa em linguagem de montagem que corresponde s instrues de
mquina abaixo?
8000
8004
8008
8012
19
20
21
32
0
35
15
16
17
34
11
12
12
lw $t4, 12($t3)
15
19
8016
8004
8020
Loop:
J 8004 (Loop)