1. Ubahlah penggalan kode C berikutinimenjadikode MIPS dan bahasaMesin
temp =m[4];
m[4] = n[4];
n[4] = temp;
Jawab:
Kode MIPS
lw $t0 10 ($s3) #starting address m[4] = 10
lw $t0 40 ($s3)
lw $t1 50 ($s3) # starting address n[4] = 50
lw $t1 200 ($s3)
sw St1 40 ($s3)
sw St0 200 (Ss3)
2. Ubalah penggalan kode C berikut ini menjadi kode MIPS dan bahasa mesin !
if(a <= 7)
b[1] = a + 7 + b[5];
else
b[1] = a – 7 + b[5];
jawab :
Kode MIPS
a = $s1
lui $s2, 7
slt $t0, $s1, $s2 # jika a < 7, $t0 = 1 ,, $t0 = 0, a >=7
bne $t0, $zero, 32 # jika $t0 != 0 (a < 7), ke 32
beq $s1, $s2, 32 # jika a = 7, ke 32
lw $s4, 20 ($s3)
sub $t2, $s1, $s2 # a-7
add $t2, $t2, $s4 # $t2 + b[5]
sw $t2, 40 ($s3)
j 20
32: add $t2, $s1, $s2 # a + 7
add $t2, $t2, $s4 # $t2 + b[5]
sw $t2, 40 ($s3)
20:
3. Ubahlah penggalan kode C berikut ini menjadi kode MIPS dan bahasa mesin
j = 6;
k = 1;
while (j < 10)
{
if(j < 4)
i = j + k ;
else
i = k – j;
j = j + 2;
k = k + 1;
}
Jawab :
Kode MIPS
$s1 = j $s2 = k $s3 = i
lui $t0, 10 lui $t1, 4
lui $s1, 6 lui $s1, 1
24: slt $t2, $s1, $t0 # jika j < 10, $t2 = 1 ,, $t2 = 0, j >= 10
bne $t2, $zero, 20 # jika $t2 != 0, ke 20
j28:
20: slt $t3, $s1, $t1 # j < 4, $t3 = 1 ,, $t3 = 0, j >= 4
bne $t3, $zero, 40
sub $s3, $s2, $s1
addi $s1, $s1, 2
addi $s2, $s2, 1
j24:
40: add $s3, $s1, $s2
j24:
28:
4. Ubahlahpenggalankode C berikutinimenjadikode MIPS danbahasamesin :
if(x >= 3) && (y < 5)
k = x – y – 2;
else
k = x + y + 2;
Jawab :
Bahasa MIPS
k = $s1
x = $s2
y = $s3
lui $t0, 3
lui $t1, 5
lui $t2, 2
slt $t3, $s3, $t1 # y < 5, $t3 = 1 / $t3 = 0, y >= 5
bne $t3, $zero, 24 # $t3 != 0 (y <5), ke 24
16: add $s1, $s2, $s3
add $s1, $s1, $t2
j40:
24: slt $t3, $s2, $t0 # x < 3, $t3 = 1 / $t3 = 0, x > 3
beq $t3, $zero, 16 # $t3 = 0 (x > 3) ke 16
bne $t0, $s2, 16 # x != 3 ke 16
sub $s1, $s2, $s3
sub $s1, $s1, $t2
40:
0 komentar:
Posting Komentar