Considere o Datapath, as tabelas (em Português de Portugal) e o preenchimento do banco de registradores abaixo, indicando o valor (em binário) que está sendo entregue em cada sinal/barramento para as instruções indicadas no formulário.
Considere que as instruções executarão a partir da posição 8000 (decimal) da memória. Os endereços dos registradores bem como os valores da tabela abaixo estão em decimal.
Loop:
add $t1,$s3,$s3 # $t1 = 2 * i
add $t1,$t1,$t1 # $t1 = 4 * i
add $t1,$t1,$s6 # $t1 = endereço de save[i]
lw $t0,0($t1) # $t0 recebe save[i]
bne $t0,$s5,Exit # vá para Exit se save[i] != k
add $s3,$s3,$s4 # i = i+j
j Loop
Exit:
-----------------------------------
save[i]={ 0, 10, 4, 2, 1, 9, 100, 200, 1, 10 }
Legenda:
IM - Instruction Memory; I[31-0] - Instruction[31-0]; DM - Data Memory; AC - ALU Control; C - Control; R - Registers; SE - Sign-Extend; SL - Shift Left 2