Aula 08 - Código e Formato de Instrução

19
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES CODIFICAÇÃO DE INSTRUÇÕES Igor Luiz Oliveira de Souza

description

Arquitetura de sistemas digitais

Transcript of Aula 08 - Código e Formato de Instrução

Page 1: Aula 08 - Código e Formato de Instrução

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES

CODIFICAÇÃO DE INSTRUÇÕESIgor Luiz Oliveira de Souza

Page 2: Aula 08 - Código e Formato de Instrução

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.

Page 3: Aula 08 - Código e 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);

Page 4: Aula 08 - Código e Formato de Instrução

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

Page 5: Aula 08 - Código e Formato de Instrução

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

Page 6: Aula 08 - Código e Formato de Instrução

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

Page 7: Aula 08 - Código e Formato de Instrução

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

Page 8: Aula 08 - Código e Formato de Instrução

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

Page 9: Aula 08 - Código e Formato de Instrução

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

Page 10: Aula 08 - Código e Formato de Instrução

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

Page 11: Aula 08 - Código e Formato de Instrução

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

Page 12: Aula 08 - Código e Formato de Instrução

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

Page 13: Aula 08 - Código e Formato de Instrução

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

Page 14: Aula 08 - Código e Formato de Instrução

ARQUITETURA MIPSFormato de Instrução MIPS – Tipo J Código de Operação – Tipo J:

Instrução op

J 2

Page 15: Aula 08 - Código e Formato de Instrução

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

Page 16: Aula 08 - Código e Formato de Instrução

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

Page 17: Aula 08 - Código e Formato de Instrução

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

Page 18: Aula 08 - Código e Formato de Instrução

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

Page 19: Aula 08 - Código e Formato de Instrução

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: