Você está na página 1de 15

Formato

 de  instruções  e  operações  lógicas  

Daniel  Ludovico  Guidoni  


danielguidoni@gmail.com  

AOC  1   1  
Formato  das  instruções  –  @po  R  

• op:  operação  básica  da  instrução.  Opcode  


• rs:  registrador  do  primeiro  operando  de  origem  
• rt:  registrador  do  segundo  operando  de  origem  
• rd:  o  registrador  do  operando  de  des@no  
• shamt:  quan@dade  de  deslocamento  (operações  lógicas)  
• funct:  função.  Seleciona  alguma  variação  da  operação  a  ser  realizada  

• @po  R  ou  formato  R:  operações  com  registradores  


• rs,  rt  e  dr:  25  =  32  possíveis  registradores  

AOC  1   2  
Formato  das  instruções  –  @po  R  

• Add  $t0,  $s1,  $s2  


– $s1  =  17º  registrador  
– $s2  =  18º  registrador  
– $t0  =  8º  registrador  
– opcode  para  add  =  0  
– funct  =  32  

• O  processador  só  entende  binário  

AOC  1   3  
Formato  das  instruções  –  @po  I  

 
• op:  operação  básica  da  instrução.  Opcode  
• rs:  registrador  do  primeiro  operando  
• rt:  registrador  de  des@no  
• constante:  constante  que  é  adicionada  ao  registrador  base  

• @po  I  ou  formato  I:  operações  com  imediato  


• lw  $t0,  32($t1)  
• sw  $t2,  36($t3)  
• addi  $t4,  $t5,  10  
• Constante  =  16  bits  =  216  =  32.768  bytes  que  podem  ser  endereçados  a  
par@r  do  endereço  base  (+/-­‐  215)    
AOC  1   4  
Formato  das  instruções  

AOC  1   5  
Assembly  MIPS  para  linguagem  de  máquina  

• $t1  possui  a  base  para  o  vetor  A  


• $s2  corresponde  a  h  
• Código  em  C:  
A[300]  =  h  +  A[300]  
 
• Código  MIPS:  
lw  $t0,  1200($t1)  #  $t0  =  A[300]  
add  $t0,  $s2,  $t0    #  $t0  =  h  +  A[300]  
sw  $t0,  1200($t1)  #  A[300]  =  h  +  A[300]  
 
• Em  linguagem  de  máquina:  

AOC  1   6  
Assembly  MIPS  para  linguagem  de  máquina  

• Linguagem  de  máquina  usando  números  decimais  

• Linguagem  de  máquina  usando  números  binários  

AOC  1   7  
Formato  das  instruções  

AOC  1   8  
Operações  lógicas  

• Operações  que  atuam  sobre  bits  individuais  de  uma  word  

AOC  1   9  
Operações  de  deslocamento  (shi+s)  

• Move  todos  os  bits  de  uma  word  para  a  esquerda  ou  direta  
• Preenche  os  bits  que  ficam  vazio  com  0s  

• Suponha  que  o  registrador  $s0  possui:  

• Executar  a  operação    
sll  $t2,  $s0,  4    #  $t2  =  $s0  <<  4  bits  
 
•  $t2  possui:  

AOC  1   10  
Operações  de  deslocamento  (shi+s)  

• Formato  da  instrução  

• O  campo  shamt  significa  shi+  amount  


• rs  não  é  u@lizado,  por  isso  está  com  0  

• O  deslocamento  à  esquerda  de  i  bits  gera  o  mesmo  resultado  do  


que  mul@plicar  por  2i  
– shim  de  4  bits  é  o  mesmo  do  que  mul@plicar  por  24  
– 9  x  24  =  144  

AOC  1   11  
Operação  AND  

• Suponha  que  o  registrador  $t2  possui:  

• Suponha  que  $t1  possui:  

• Então  execute:  
and  $t0,  $t1,  $t2  
 
• O  valor  de  $t0  é:  

AOC  1   12  
Operação  OR  

• $t1  contém:  

• $t2  contém:  

• Or  $t0,  $t1,  $t2,  o  valor  de  $t0  é:    

AOC  1   13  
Resumo  das  operações  lógicas  

AOC  1   14  
Exercício  

• C[110]  =  (((a+b)  –  (a-­‐c+d))  +  B[10]  –  A[300])  +  e  

• Suponha:  
– a  =  $1  
– b  =  $2  
– c  =  $3  
– d  =  $4  
– e  =  $5  
– A  =  $6  
– B  =  $7  
– C  =  $8  

AOC  1   15  

Você também pode gostar