Translate MIPS assembly language Using byte addressed memory
Translate MIPS assembly language.
+Using byte addressed memory and the following register assignments
i=$s0
j=$s1
k=$s2
starting address a = $s3
starting address b = $s4
========Translate MIPS assembly language.==============
a) i = j +21;
-------------------------------------------
b) k = i – ( j + k )
-------------------------------------------
c) j = b[2] * 8
-------------------------------------------
d) b[2*j] = 10;
-------------------------------------------
f) a[i]++
-------------------------------------------
Solution
1) i = j + 21;
addi $s0,$s1,21 #adding 21 to $s1 and assiging into $s0
2) k = i - (j + k)
    $s2 = $s0 - ($s1 + $s2)
add $to,$s1,$s2   #$t0 = $s1+$s2
 sub $t1,$s0,$to   #$t1 = $s0-$to
 move $s2,$t1
3) j = b[2] * 8
 $s1 = $s4[2] * 8
lw $s4, 0($sp)   #b[2]
 mult $s4,8       #b[2] * 8
 move $s1,$s4     #$s1 = $s4
4)b[2*j] = 10;
 $s4[2*$s1] = 10;
mult 2,$s1        #2*$s1
 lw $s4, 1($s1)    #$s4[2*$s1]
 sw $s4,10         #store #s4[2*$s1] = 10

