Aula 08 - Código e Formato de Instrução
-
Upload
joao-henrique-flores-franca -
Category
Documents
-
view
30 -
download
6
description
Transcript of Aula 08 - Código e Formato de Instrução
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES
CODIFICAÇÃO DE INSTRUÇÕESIgor Luiz Oliveira de Souza
ARQUITETURA MIPSCodificação de Instruções Cada parte da instrução pode ser considerada um número individual, e a colocação dessesnúmeros lado a lado forma a instrução;
Como os registradores fazem parte de quase todas as instruções é preciso haver umaconvenção para mapear nomes de registrador em números;
A versão numérica das instruções de linguagem de máquina, e a sequencia dessas instruções éo código de máquina ou de instruções;
O layout da instrução é denominado formato de instrução.
ARQUITETURA MIPSFormato de Instrução MIPS A fim de manter os princípios de simplicidade e regularidade, todas as instruções doMIPS podem ser agrupada em três formatos básico:
Instruções registrador – registrador (Tipo R);
Instruções envolvendo valor imediato ou transferência de dados (Tipo I);
Instruções de desvio (Tipo J);
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo R O formato tipo registrador – registrador tem os seguintes campos:
op: código da operação básica da instrução (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. lógicas);
função: seleciona a variante específica da operação no campo op.
op rs rt rd shamt função
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo R Tabela Registradores: Código de Operação – Tipo R:
Num. Registradores Num. Registradores
$t0 = 8 $s0 = 16
$t1 = 9 $s1 = 17
$t2 = 10 $s2 = 18
$t3 = 11 $s3 = 19
$t4 = 12 $s4 = 20
$t5 = 13 $s5 = 21
$t6 = 14 $s6 = 22
$t7 = 15 $s7 = 23
Instrução op Função
add 0 32
sub 0 34
slt 0 42
jr 0 8
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo R Ex: Como ficaria o formato da instrução : add $t0, $s1, $s2 ?
op: 0;
rs: $s1 = 17 ;
rt: $s2 = 18;
rd: $t0 = 8;
end. Deslocamento: não se aplica;
função: 32.
0 17 18 8 0 32
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo R Ex: Como ficaria o formato da instrução : add $t0, $s1, $s2 em binário?
000000 10001 10010 01000 00000 100000
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo I O formato tipo I tem os seguintes campos:
op: código da operação básica da instrução (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 instrução lw o significado do campo rt especifica os registrador de destino, que recebe o resultado doload;
op rs rt constante ou deslocamento
6 bits 5 bits 5 bits 16 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo I Tabela Registradores: Código de Operação – Tipo I:
Num. Registradores Num. Registradores
$t0 = 8 $s0 = 16
$t1 = 9 $s1 = 17
$t2 = 10 $s2 = 18
$t3 = 11 $s3 = 19
$t4 = 12 $s4 = 20
$t5 = 13 $s5 = 21
$t6 = 14 $s6 = 22
$t7 = 15 $s7 = 23
Instrução op
lw 35
sw 43
beq 4
bne 5
addi 8
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo I Ex: Como ficaria o formato da instrução : lw $t0 , 32($s3) ?
op: 35;
rs: $s3 = 19 ;
rt: $t0 = 8;
deslocamento: 32;
35 19 8 32
6 bits 5 bits 5 bits 16 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo I Ex: Como ficaria o formato da instrução : lw $t0 , 32($s3) em binário?
100011 10011 01000 0000 0000 0010 0000
6 bits 5 bits 5 bits 16 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo I Ex: Como ficaria o formato da instrução : bne $s0, $s1, Else ?
op: 5 (bne);
rs: $s0 = 16 ;
rt: $s1 = 17;
deslocamento: endereço do rótulo Else;
5 16 17 Else
6 bits 5 bits 5 bits 16 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo J O formato tipo J tem os seguintes campos:
op: código da operação básica da instrução (opcode);
endereço de salto: endereço da instrução para onde o programa deve ser desviado.
op endereço de salto
26 bits6 bits
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo J Código de Operação – Tipo J:
Instrução op
J 2
ARQUITETURA MIPSFormato de Instrução MIPS – Tipo J Ex: Como ficaria o formato da instrução : J Loop ?
op: 2;
endereço de salto: endereço do rótulo Loop.
2 Loop
26 bits6 bits
ARQUITETURA MIPSFormato de Instrução MIPS Como ficaria o formato das instruções ?
sub $t0 , $t1, $t2
sw $s0, 8($s1)
lw $s1, 4($t1)
addi $t0, $t7, 3
0 9 10 8 0 34
OP RS RT RD função
43 17 16 8
OP RS RT DESLOC
35 9 17 4
OP RS RT DESLOC
8 15 8 3
OP RS RT DESLOC
ARQUITETURA MIPSFormato de Instrução MIPS Converta para linguagem de máquina, sabendo que o programa abaixo estáarmazenado no endereço 50.
50 add...
54 L1: sub...
58 slt...
62 beq...
66 bne...
70 J L1 2 54
endereçoOP
ARQUITETURA MIPSFormato de Instrução MIPS Converta para Assembly:
beq $t1, $t0, 48
lw $t0, 4($t1)
slt $t2, $t0, $t10 8 9 10 0 42
OP RS RT RD função
4 9 8 48
OP RS RT DESLOC
35 9 8 4
OP RS RT DESLOC
ARQUITETURA MIPSFormato de Instrução MIPS Qual é o programa em linguagem de montagem que corresponde às instruções demáquina abaixo?
8000
8004
8008
8012
8016
8020
0 19 20 21 0 32
35 11 12 12
5 15 19 4
0 15 16 17 0 34
2 8004
…… …….
add $s5, $s3, $s4
sub $s1, $t7, $s0
lw $t4, 12($t3)
bne $t7, $s3, 8020 (Exit)
J 8004 (Loop)
Loop: