Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos...
Transcript of Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos...
![Page 1: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/1.jpg)
Sistemas Processadores e PeriféricosAula 2 - Revisão
Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor
Leandro Galvão DCC/UFAM - [email protected] pelo Prof. Ricardo de Oliveira Duarte
Prof. Frank Sill TorresDELT – Escola de Engenharia
UFMG
![Page 2: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/2.jpg)
Arquitetura MIPS:: Diagrama simplificado
MUX
MUX
MUX
MUX
2
![Page 3: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/3.jpg)
3
Convenção de uso dos registradores
Endereço de retorno31$ra
Apontador de quadro30$fp
Apontador de pilha29$sp
Apontador global28$gp
Mais temporários24-25$t8-$t9
Salvos por uma função chamada16-23$s0-$s7
Temporários, não precisam ser salvos8-15$t0-$t7
Argumentos de funcoes4-7$a0-$a3
Retorno de funções2-3$v0-$v1
Valor constante igual a zero0$zero
UsoNúmeroRegistrador
![Page 4: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/4.jpg)
Princípios de projeto MIPS
1. Simplicidade favorece regularidade2. Menor significa mais rápido3. Agilize os casos mais comuns
4
![Page 5: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/5.jpg)
O espaço de endereçamento de memória do MIPS é de 230 palavras (de 32 bits)
MIPS exige que todas as palavras comecem em endereços que são múltiplos de 4 bytes
Instruções MIPS:: Armazenamento na memória
0 1 2 3Alinhado
NãoAlinhado
Bytes na palavra
5
![Page 6: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/6.jpg)
Instruções MIPS:: Armazenamento na memória
• Big endian - byte mais à esquerda marca endereço da palavra
• Little endian – byte mais à direita marca endereço da palavra• Exemplo: palavra = 6151CE94h, endereço = 0F40
6
0F40 61 51 CE 940F44 00 00 00 00
0F40 94 CE 51 610F44 00 00 00 00
1) Big Endian:
2) Little Endian:
![Page 7: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/7.jpg)
Instruções MIPS:: Instruções de transferência de dados
90166000ff666e30000000000000000000000000000000000000000000000000
...
0000000b
00000000h00000004h00000008h0000000ch00000010h00000014h00000018h0000001ch
...
fffffffch
endereço dados
90166000ff666e30
...
0000000b
0123
31
nº. registrador dados
Banco de Registradores
Memória7
![Page 8: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/8.jpg)
Instruções MIPS:: Instruções de transferência de dados
lw $30,4($2)
Load word (lw)
9016 6000ff66 6e300000 00000000 00000000 012f0000 00000000 00000000 0000
...
0000 000b
00000000h00000004h00000008h0000000ch00000010h00000014h00000018h0000001ch
...
fffffffch
endereço dados
9016 6000ff66 6e300000 000c
...
0000 012f0000 000b
0123
3031
nº. registrador dados
+
Banco de registradores Memória
8
![Page 9: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/9.jpg)
Formato registrador (R)
Formato imediato (I)
Formato jump (J)
Representando instruções no computador
Shamt
9
![Page 10: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/10.jpg)
Lei de Amdahl
“O maior aumento de desempenho possível introduzindo melhorias numa determinada característica é limitado pela percentagem em que essa característica é utilizada”
1
1velho
globalnovo
TMelhoria FT FS
1 1velhonovo velho velho
F T FT F T T FS S
Tempo de execução (Tex) após melhoria = Tex afetado pela melhoria
Quantidade da melhoria+ Tex não‐afetado
10
![Page 11: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/11.jpg)
Sistemas Processadores e PeriféricosAula 3 - Conjunto de Instruções MIPS II
Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor
Leandro Galvão DCC/UFAM - [email protected] pelo Prof. Ricardo de Oliveira Duarte
Prof. Frank Sill TorresDELT – Escola de Engenharia
UFMG
![Page 12: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/12.jpg)
12
Instruções MIPS
Transferência de Dados Lógicas Controle Suporte a procedimentos
![Page 13: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/13.jpg)
13
Instruções MIPS:: Instruções Lógicas
NOR
OR
E
Shift right logical
Shift left logical
Significado
norNOR bit a bit
or, oriOR bit a bit
and, andiAND bit a bit
srlShift à direita
sllShift à esquerda
Instrução MIPSOperação lógica
![Page 14: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/14.jpg)
14
Instruções MIPS:: Instruções Lógicas
Operações de deslocamento (shift) Deslocam todos os bits de uma palavra para esquerda
ou direita, preenchendo os bits vazios com zero (não cíclico)
São instruções do tipo R (registrador) A quantidade de bits a serem deslocados é
especificada pelo campo shamt (shift amount)
![Page 15: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/15.jpg)
15
shift left logical (sll)
Instruções MIPS:: Instruções Lógicas
sll $t2, $s0, 4 # $t2 ← $s0 << 4
$s0 0110 1000 1111 0000 0111 0110 1111 1111
1000 1111 0000 0111 0110 1111 1111 0000$t2
Conteúdo:
![Page 16: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/16.jpg)
16
shift left logical (sll)
Instruções MIPS:: Instruções Lógicas
sll $t2, $s0, 4 # $t2 ← $s0 << 4
Instrução(decimal):
Instrução(binário):
sll shamt$t2$s0--sll
0 4101600
000000 00100010101000000000000000
funct shamtrdrtrsop
![Page 17: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/17.jpg)
17
shift right logical (srl)
Instruções MIPS:: Instruções Lógicas
srl $t2, $s0, 8 # $t2 ← $s0 >> 8
$s0 0110 1000 1111 0000 0111 0110 1111 1111
0000 0000 0110 1000 1111 0000 0111 0110$t2
Conteúdo:
![Page 18: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/18.jpg)
18
shift right logical (srl)
Instruções MIPS:: Instruções Lógicas
srl $t2, $s0, 8 # $t2 ← $s0 >> 8
Instrução(decimal):
Instrução(binário):
srl shamt$t2$s0--srl
2 8101600
000010 01000010101000000000000000
funct shamtrdrtrsop
![Page 19: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/19.jpg)
19
shift right arithmetic (sra) Desloca bits à direita, preservando o sinal (compl. a 2) Deslocamento de n bits corresponde à divisão por 2n
Dica: para divisões com valores de tipo integer
Instruções MIPS:: Instruções Lógicas
sra $t2, $s0, 4 # $t2 ← $s0 >> 4
$s0 1110 1000 1111 0000 0111 0110 1111 1111
1111 1110 1000 1111 0000 0111 0110 1111$t2
Conteúdo:
![Page 20: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/20.jpg)
Instruções MIPS:: Revisão – Complemento a 2
0000
0111
0011
1011
11111110
1101
1100
1010
10011000
0110
0101
0100
0010
0001
+0+1
+2
+3
+4
+5
+6+7-8
-7
-6
-5
-4
-3-2
-1
0 100 = + 4 1 100 = - 4
+
-
-8 421
20
![Page 21: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/21.jpg)
21
shift right arithmetic (sra)
Instruções MIPS:: Instruções Lógicas
sra $t2, $s0, 4 # $t2 ← $s0 >> 4
Instrução(decimal):
Instrução(binário):
sra shamt$t2$s0--sra
3 4101600
000011 00100010101000000000000000
funct shamtrdrtrsop
![Page 22: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/22.jpg)
22
AND bit a bit (and)
Instruções MIPS:: Instruções Lógicas
$t1 0000 0000 1111 0000 0000 0110 0000 1111
0000 0000 0110 0000 0000 0000 0000 1110$t2
Conteúdo:
and $t0, $t1, $t2 # $t0 ← $t1 & $t2
0000 0000 0110 0000 0000 0000 0000 1110$t0
![Page 23: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/23.jpg)
23
AND bit a bit (and)
Instruções MIPS:: Instruções Lógicas
and $t0, $t1, $t2 # $t0 ← $t1 & $t2
Instrução(decimal):
Instrução(binário):
and --$t0$t2$t1and
(24)h081090
100100 00000010000101001001000000
funct shamtrdrtrsop
![Page 24: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/24.jpg)
24
OR bit a bit (or)
Instruções MIPS:: Instruções Lógicas
$t1 0000 0000 1111 0000 0000 0110 0000 1111
0000 0000 0110 0000 0000 0000 0000 1110$t2
Conteúdo:
or $t0, $t1, $t2 # $t0 ← $t1 | $t2
0000 0000 1111 0000 0000 0110 0000 1111$t0
![Page 25: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/25.jpg)
25
OR bit a bit (or)
Instruções MIPS:: Instruções Lógicas
or $t0, $t1, $t2 # $t0 ← $t1 | $t2
Instrução(decimal):
Instrução(binário):
or --$t0$t2$t1or
(25)h081090
100101 00000010000101001001000000
funct shamtrdrtrsop
![Page 26: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/26.jpg)
26
NOR bit a bit (nor) A operação NOT (negação) tem apenas um operando
Para acompanhar o formato de dois operandos, a instrução NOR foi projetada no lugar do NOT
Se um operando for zero, NOR é equivalente ao NOT: A NOR 0 = NOT (A OR 0) = NOT (A)
Instruções MIPS:: Instruções Lógicas
![Page 27: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/27.jpg)
27
NOR bit a bit (nor)
Instruções MIPS:: Instruções Lógicas
Instrução(decimal):
Instrução(binário):
nor --$t0$zero$t1nor
(27)h08090
100111 00000010000000001001000000
funct shamtrdrtrsop
nor $t0, $t1, $zero # $t0 ← ~ $t1
![Page 28: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/28.jpg)
28
XOR bit a bit (xor)
Instruções MIPS:: Instruções Lógicas
Instrução(decimal):
Instrução(binário):
xor --$t0$t2$t1xor
(26)h081090
100110 00000010000101001001000000
funct shamtrdrtrsop
xor $t0, $t1, $t2 # $t0 ← $t1 $t2
![Page 29: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/29.jpg)
29
AND imediato (andi)
Instruções MIPS:: Instruções Lógicas
andi $t0, $t1, 40 # $t0 ← $t1 & 40
4089(C)hconstante $t0$t1andi
00000000001010000100001001001100
immediate rtrsopInstrução(decimal):
Instrução(binário):
![Page 30: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/30.jpg)
30
OR imediato (ori)
Instruções MIPS:: Instruções Lógicas
ori $t0, $t1, 40 # $t0 ← $t1 | 40
4089(D)hconstante $t0$t1ori
00000000001010000100001001001101
immediate rtrsopInstrução(decimal):
Instrução(binário):
![Page 31: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/31.jpg)
31
Instruções MIPS:: Instruções Lógicas :: Resumo
![Page 32: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/32.jpg)
32
Instruções MIPS
Transferência de Dados Lógicas Controle Suporte a procedimentos
![Page 33: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/33.jpg)
33
xy
n[0]n[1]n[2]
variáveis
...
Região de Códigos
Região de Dados
...3c08 10008d09 00048d0a 0010012a 4820ad09 0008
...
0000 00000000 0003ffff fff00000 00000000 00000000 0003
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
0ffffffch10000000h10000004h10000008h1000000ch10000010h...
10007ffch10008000h10008004h10008008h...
fffffffch
lui $8, 0x1000lw $9, 4($8)lw $10,16($8)add $9, $9, $10sw $9, 8($8)...
instruções
Memóriaendereços significadoconteúdo
Instruções MIPS:: Processando instruções sequenciais
![Page 34: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/34.jpg)
34
lui $8, 0x1000lw $9, 4($8)lw $10,16($8)add $9, $9, $10sw $9, 8($8)...
...3c08 10008d09 00048d0a 0010012a 4820ad09 0008
...
0000 0000...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400000
3c081000
PC
IR
Execução da instrução lui na via de dados
Processador
Instruções MIPS:: Processando instruções seqüenciais
![Page 35: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/35.jpg)
35
lui $8, 0x1000lw $9, 4($8)lw $10,16($8)add $9, $9, $10sw $9, 8($8)...
...3c08 10008d09 00048d0a 0010012a 4820ad09 0008
...
0000 0000...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400004
8d090004
PC
IR
Execução da instrução lw na via de dados
Processador
Instruções MIPS:: Processando instruções seqüenciais
![Page 36: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/36.jpg)
36
lui $8, 0x1000lw $9, 4($8)lw $10,16($8)add $9, $9, $10sw $9, 8($8)...
...3c08 10008d09 00048d0a 0010012a 4820ad09 0008
...
0000 0000...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400008
8d0a0010
PC
IR
Execução da instrução lw na via de dados
Processador
Instruções MIPS:: Processando instruções seqüenciais
![Page 37: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/37.jpg)
37
lui $8, 0x1000lw $9, 4($8)lw $10,16($8)add $9, $9, $10sw $9, 8($8)...
...3c08 10008d09 00048d0a 0010012a 4820ad09 0008
...
0000 0000...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
0ffffffch...
Memóriaendereços significadoconteúdo
0040000c
012a4820
PC
IR
Execução da instrução add na via de dados
Processador
Instruções MIPS:: Processando instruções seqüenciais
![Page 38: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/38.jpg)
38
lui $8, 0x1000lw $9, 4($8)lw $10,16($8)add $9, $9, $10sw $9, 8($8)...
...3c08 10008d09 00048d0a 0010012a 4820ad09 0008
...
0000 0000...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400010
ad090008
PC
IR
Execução da instrução sw na via de dados
Processador
Instruções MIPS:: Processando instruções seqüenciais
![Page 39: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/39.jpg)
39
Instruções para tomada de decisão Alteram o fluxo de controle do programa Alteram a “próxima” instrução a ser executada
Instruções de controle: Salto condicional Salto incondicional
Instruções MIPS:: Instruções de controle
![Page 40: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/40.jpg)
40
Instruções MIPS para salto condicional: Branch on equal (beq) Branch on not equal (bne) Set on less than (slt) Set on less than immediate (slti)
Instruções MIPS para salto incondicional: jump (j)
Instruções MIPS:: Instruções de controle
![Page 41: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/41.jpg)
41
Branch on not equal (bne) Desvia o programa para <label1> se $t0 != $t1
Branch on equal (beq) Desvia o programa para <label2> se $t0 == $t1
Instruções MIPS:: Instruções de controle
beq $t0, $t1, label2 #if ($t0 == $t1) goto label2
bne $t0, $t1, label1 #if ($t0 != $t1) goto label1
![Page 42: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/42.jpg)
42
Exemplo
Instruções MIPS:: Instruções de controle :: Ex 01
i = j
h = i + j
sim
não
bne $8, $9, saiadd $10, $8, $9
sai: nop
![Page 43: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/43.jpg)
43
00000004 bne $8, $9, saiadd $10, $8, $9
sai: nop
...1509 0002 0109 5020 0000 0000
...
0000 0000...
00000000h...
00400000h00400004h00400008h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400000PC
$8
Execução da instrução bne na via de dados
Processador
00000003$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 01.1
![Page 44: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/44.jpg)
44
00000004 bne $8, $9, saiadd $10, $8, $9
sai: nop
...1509 0002 0109 5020 0000 0000
...
0000 0000...
00000000h...
00400000h00400004h00400008h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400008PC
$8
desvio para o label sai
Processador
Instruções MIPS:: Instruções de controle :: Ex 01.1
00000003$9$10
...
...
![Page 45: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/45.jpg)
45
00000004 bne $8, $9, saiadd $10, $8, $9
sai: nop
...1509 0002 0109 5020 0000 0000
...
0000 0000...
00000000h...
00400000h00400004h00400008h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400000PC
$8
Execução da instrução bne na via de dados.
Processador
00000004$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 01.2
![Page 46: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/46.jpg)
46
00000004 bne $8, $9, saiadd $10, $8, $9
sai: nop
...1509 0002 0109 5020 0000 0000
...
0000 0000...
00000000h...
00400000h00400004h00400008h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400004PC
$8
Execução da instrução add na via de dados
Processador
Instruções MIPS:: Instruções de controle :: Ex 01.2
00000004$9$10
...
...
00000008
![Page 47: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/47.jpg)
47
00000004 bne $8, $9, saiadd $10, $8, $9
sai: nop
...1509 0002 0109 5020 0000 0000
...
0000 0000...
00000000h...
00400000h00400004h00400008h...
0ffffffch...
Memóriaendereços significadoconteúdo
00400008PC
$8
Fim de execução
Processador
Instruções MIPS:: Instruções de controle :: Ex 01.2
00000004$9$10
...
...
00000008
![Page 48: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/48.jpg)
48
Branch on not equal (bne)
bne $t0, $t1, label
xxx (16 bits)0100101000000101
immediate rtrsop
Instruções MIPS:: Instruções de controle :: Formato
xx985
no. words saltadas $t1$t0bne
Instrução(decimal):
Instrução(binário):
![Page 49: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/49.jpg)
49
Branch on equal (beq)
beq $t0, $t1, label
xxx (16 bits)0100101000000100
xx984
no. words saltadas $t1$t0beq
immediate rtrsop
Instruções MIPS:: Instruções de controle :: Formato
Instrução(decimal):
Instrução(binário):
![Page 50: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/50.jpg)
50
Instruções MIPS:: Instruções de controle :: Formato As instruções de desvio condicional armazenam, no
campo immediate, a quantidade de palavras (words) que devem ser saltadas para chegar ‘a instrução marcada pelo label (rótulo)
Um número positivo indica que o salto deve ser no sentido para frente (até o fim do código)
Um número negativo indica que o salto deve ser no sentido para trás (até o início do código)
![Page 51: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/51.jpg)
51
Set on less than (slt) Compara dois registradores
Set on less than immediate (slti) Compara um registrador e uma constante
slt $s1, $s2, $s3 #if ($s2 < $s3) $s1 = 1#else $s1 = 0
Instruções MIPS:: Instruções de controle
slti $s1, $s2, 100 #if ($s2 < 100) $s1 = 1#else $s1 = 0
![Page 52: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/52.jpg)
52
Instruções do tipo “Set on less than” combinadas com instruções do tipo “Branch” permitem criar todas as condições relativas: igual diferentemaiormaior ou igualmenormenor ou igual
Instruções MIPS:: Instruções de controle
![Page 53: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/53.jpg)
53
Jump (j) Desvio incondicional para um endereço de memória
apontado por um label
Instruções do tipo branch indicam desvio da sequência do programa mediante análise de uma condição
Instruções do tipo jump indicam desvio incondicional da sequência do programa
Instruções MIPS:: Instruções de controle
j label
![Page 54: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/54.jpg)
54
Exemplo
Instruções MIPS:: Instruções de controle :: Ex 02
bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
i = j
h = i + j
sim
não
h = i - j
![Page 55: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/55.jpg)
55
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
00400000PC
$8
Execução da instrução bne na via de dados
Processador
00000003$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.1
![Page 56: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/56.jpg)
56
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
0040000cPC
$8
Execução da instrução sub na via de dados
Processador
00000003$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.1
00000001
![Page 57: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/57.jpg)
57
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
00400010PC
$8
Fim de execução
Processador
00000003$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.1
00000001
![Page 58: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/58.jpg)
58
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
00400000PC
$8
Execução da instrução bne na via de dados
Processador
00000004$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.2
![Page 59: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/59.jpg)
59
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
00400004PC
$8
Execução da instrução add na via de dados
Processador
00000004$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.2
00000008
![Page 60: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/60.jpg)
60
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
00400008PC
$8
Execução da instrução j na via de dados
Processador
00000004$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.2
00000008
![Page 61: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/61.jpg)
61
00000004 bne $8, $9, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...1509 00030109 50200810 00040109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h...
Memóriaendereços significadoconteúdo
00400010PC
$8
Desvio incondicionalFim de execução
Processador
00000004$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 02.2
00000008
![Page 62: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/62.jpg)
62
Exemplo
Instruções MIPS:: Instruções de controle :: Ex 3
slt $11, $8, $9 beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
i < j
h = i + j
sim
não
h = i - j
![Page 63: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/63.jpg)
63
0000000A slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400000PC
$8
Execução da instrução slt na via de dados
Processador
0000001C$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.1
$11
00000000$0
00000001
![Page 64: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/64.jpg)
64
0000000A slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400004PC
$8
Execução da instrução beq na via de dados
Processador
0000001C$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.1
$11
00000000$0
00000001
00000000
![Page 65: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/65.jpg)
65
0000000A slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400008PC
$8
Execução da instrução add na via de dados
Processador
0000001C$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.1
$11
00000000$0
00000001
00000026
![Page 66: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/66.jpg)
66
0000000A slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
0040000cPC
$8
Execução da instrução j na via de dados
Processador
0000001C$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.1
$11
00000000$0
00000001
00000026
![Page 67: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/67.jpg)
67
0000000A slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400014PC
$8
Desvio incondicional.Fim da execução
Processador
0000001C$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.1
$11
00000000$0
00000001
00000026
![Page 68: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/68.jpg)
68
0000001C slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400000PC
$8
Execução da instrução slt na via de dados
Processador
0000000A$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.2
$11
00000000$0
00000000
![Page 69: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/69.jpg)
69
0000001C slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400004PC
$8
Execução da instrução beq na via de dados
Processador
0000000A$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.2
$11
00000000$0
00000000
![Page 70: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/70.jpg)
70
0000001C slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400010PC
$8
Desvio condicional.Execução da instrução sub na via de dados
Processador
0000000A$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.2
$11
00000000$0
00000000
00000012
![Page 71: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/71.jpg)
71
0000001C slt $11, $8, $9beq $11, $0, elseadd $10, $8, $9j sai
else: sub $10, $8, $9sai: nop
...
...0109 582a1160 00030109 50200810 00050109 50220000 0000
...
00000000h...
00400000h00400004h00400008h0040000ch00400010h00400014h...
Memóriaendereços significadoconteúdo
00400010PC
$8
Fim da execução
Processador
0000000A$9$10
...
...
Instruções MIPS:: Instruções de controle :: Ex 03.2
$11
00000000$0
00000000
![Page 72: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/72.jpg)
72
Set on less than (slt)
slt $t0, $t1, $t2 #if ($t1 < $t2) $t0 = 1#else $t0 = 0
Instruções MIPS:: Instruções de controle :: Formato
Instrução(decimal):
Instrução(binário):
slt --$t0$t2$t1slt
(2A)h081090
101010 00000010000101001001000000
funct shamtrdrtrsop
![Page 73: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/73.jpg)
73
Set on less than immediate (slti)
00000000011001000100001001001010
immediate rtrsop
Instruções MIPS:: Instruções de controle :: Formato
10089(A)hvalor$t0$t1slti
slti $t0, $t1, 100 #if ($t1 < 100) $t0 = 1#else $t0 = 0
Instrução(decimal):
Instrução(binário):
![Page 74: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/74.jpg)
74
Jump (j)
j label # PC ← endereço[label]
xxx (26 bits)000010
target op
Instruções MIPS:: Instruções de controle :: Formato
xxx(2)hendereço da instruçãoj
Instrução(decimal):
Instrução(binário):
![Page 75: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/75.jpg)
75
Instruções MIPS:: Instruções de controle :: Formato
Ao contrário das instruções de desvio condicional (beq e bne), o campo target da instrução jumparmazena o endereço da memóriacorrespondente à instrução marcada pelo label
Como o endereço de memória é um múltiplo de 4bytes (100b), seus dois últimos bits não são representados na instrução jump
O novo endereço consiste de 4 Bits mais significativos do PC atual e de 26 (+2) Bits da instrução
![Page 76: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/76.jpg)
76
Instruções MIPS:: Instruções de controle :: Resumo
slti slti $10, $8, 100100
![Page 77: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/77.jpg)
O que você aprenderam hoje?
Instruções lógicas Formas de shift AND, OR, NOR, XOR e versões imediatas
Processo de instruções sequenciais Instruções de controle
Condicional, incondicional Formato
![Page 78: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/78.jpg)
Questões
Como fazer? “while loop”
while (save[i] != k) {
i += 1;
}
Código de assembly// $s3 = i, $s5 = k, $s6 = base of save[]
Loop: sll $t1, $s3, 2 #t1 = 4*i
add $t1, $t1, $s6 #t1 = end. de save[i]
lw $t0, 0($t1) # t0 = valor de save[i]
beq $t0, $s5, Exit # if save[i] = k vai p. Exit
addi $s3, $s3, 1 # i = i + 1
j Loop
Exit: nop
![Page 79: Sistemas Processadores e Periféricos Aula 2 - Revisão · Sistemas Processadores e Periféricos Aula 2 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02](https://reader034.fdocument.pub/reader034/viewer/2022051011/5bf438fa09d3f25b6f8c2e7a/html5/thumbnails/79.jpg)
Questões
Como fazer? “for loop”
for (j < k) {
j += 1;
}
Código de assembly// $s1 = j, $s2 = k
Loop: slt $t1,$s1,$s2 #t1 = 1 if j < k, else t1 = 0
beq $t1, $0, Exit # if j>= k then Exit
addi $s1,$s1, 1 # j = j + 1
j Loop
Exit: nop