Slide 1

Propaganda
GSI013 – Arq. e Org. de Computadores
Instruções Condicionais e de
Acesso a Memória
Arquitetura e Organização de
Computadores
Universidade Federal de Uberlândia
Faculdade de Computação
Prof. Dr. rer. nat. Daniel D. Abdala
Na Aula Anterior ...
2
Nesta Aula
• Instruções de controle de fluxo;
• Codificando fluxo em Assembly:
– If-then
– If-then-else
– Switch-case
• Codificando repetições em Assembly:
– while() / do while()
– for()
• Instruções de Acesso a memória
3
Instruções de Controle de Fluxo
•
•
•
•
•
•
•
•
slt
slti
beq
bne
beqz
bgtz
blez
bltz
- set if less than
- set if less than immediate
- branch if equal
- branch if not equal
- branch if equal zero
- branch if greather than zero
- branch if less than or equal to zero
- branch if less than zero
4
Instruções (2)
• slt $t1,$t2,$t3
– Se t2 é menor que t3 então t1 = 1 senão t1 = 0
• slti $t1,$t2,-100
– Se t2 é menor ou igual a -100 então t1=1 senão t1-0
• beq $t1,$t2,label
– Se t1 = t2 fluxo de execução pula para label
• bne $t1,$t2,label
– Se t1 !=t1 fluxo de execução pula para label
• bgez $t1,label
– Se t1>=0 fluxo de execução pula para label
5
Instruções (3)
• bgtz $t1,label
– Se t1>0 fluxo de execução pula para label
• bltz $t1,label
– Se t1<0 fluxo de execução pula para label
• blez $t1,label
– Se t1<=0 fluxo de execução pula para label
6
if –then - else
7
Switch/case
• Jump address table
8
Switch/case (2)
9
Switch/case (3)
10
while
11
for
12
Jumps
• Instruções de salto permitem alterar o fluxo
de execução de programas;
• A ISA do MIPS32 prevê vários tipos de
instruções de salto:
– Saltos relativos ao PC;
– Saltos Absolutos.
13
Jump (2)
j LABEL
opcode
address
31:26
25:0
PC
address
31:28
27:02
00
14
Outras Instruções de Salto
• jr
–
–
–
–
• jal
–
–
–
–
→ jump register
Usado para saltos absolutos;
Usado em sub-rotinas (retorno da sub-rotina);
Endereços de até 32 bits (capacidade do registrador);
Ex: jr $s0
→jump and link
Usado em sub-rotinas;
Seta $ra para o endereço de PC+4 (prox. instrução);
Salta para o endereço especificado;
Ex: jal LABEL
• jalr →jump and link register
– Usado em sub-rotinas;
– Seta $ra para PC+4 e salta para a pos. de mem. em $s0;
– Ex: jalr $s0
15
Instruções de Acesso a Memória
• Instruções que permitem a movimentação
de dados entre o processador (registradores)
e a memória;
16
Prolar
• Leitura:
– Hennessy: pgs.
– Patterson: pgs.
– Stallings: pgs.
– Tanenbaum: pgs:
17
Download