berikut ini adalh pelajarn tentang arsitektur komputer yang membahas tentang kode mips yang artinya akan melogikan semua perjalanan prosesor. tugas yang berda dibawah adalah hasil dari penjelasan sebelumnya yang memabahas tentang bahasa mesin. namun respon yang telah di adakan dan sempurna akan jawaban di bawah maka saya berniat mengepost hasil dari tugas saya.
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: