aula 07 instrução relacional
TRANSCRIPT
-
7/23/2019 Aula 07 Instruo Relacional
1/5
ARQUITETURA E ORGANIZAO DE COMPUTADORES
INSTRUO RELACIONALIgor Luiz Oliveira de Souza
-
7/23/2019 Aula 07 Instruo Relacional
2/5
ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instruo Relacional
Ostestesde igualdade oudesigualdade so provavelmente os maispopulares, mass
vezesqueremostestar se uma varivel menor do que outra; Em MIPS, temosuma instruo que compara os valores de dois registradores, e atribui1 a um terceiro registrador se o primeiro registrador menor que o segundo, e 0 casocontrrio:
Se $s3 < $s4, $t0 recebe 1, caso contrrio, recebe 0.
-
7/23/2019 Aula 07 Instruo Relacional
3/5
ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instruo Relacional
O Compiladores MIPS utilizam as instrues slt, beq, bne, e o valor fixo zero para
criar todas as relaes de comparao: igual, diferente, menor que e maior que;
O registrador $zero (registrador 0) tem seu valor fixado em zero.
-
7/23/2019 Aula 07 Instruo Relacional
4/5
ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instruo Relacional
Qual o cdigo para testar se a varivel a, mapeada no registrador $s0, menor que a
varivel b (registrador $s1), e desviar para o rtulo Menor se a condio for satisfeita? Primeiro usamos a instruo slt e um registrador temporrio:
stl $t0, $s0, $s1 # $t0 = (a
-
7/23/2019 Aula 07 Instruo Relacional
5/5
ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instruo Relacional
slt $t0, $s0, $s1 # $t0!=0, ou seja, se (i= j
add $s0, $s1,$s2 # f = g + h
j Exit # v para o fimElse: sub $s0, $s1, $s2 # f = g-h
Exit: