Anda di halaman 1dari 3

Contoh Soal Code Generator :

1. Diketahui Potongan program Sebagai berikut :

Int x, y ;
I, x = ;
do {
if (x%2 ==0)
y=x+10;
else
y=x+100;
I=I+1;
} while (I <= 10);

Buat three Addres Code & Code Generator –nya


1. I=0
2. x= 0
3. t1=x mod 2
4. t2=t1==0
5. if t2 = false goto 9
6. t3 = x+10
7. y = t3
8. goto 11
9. t4 = x + 100
10. y = t4
11. t5 = I + 1
12. I = t5
13. t6 = I <=10
14. if t6 = true goto 3
15. end

Code Generator
1. MOV 0, I
2. MOV 0, x
3. MOV x, R0
4. MOD 2, R0
5. Jmpnz R0, 11
6. MOV x, R0
7. ADD 10, R0
8. MOV R0, y
9. Jmp 13
10. MOV x, R0
11. ADD 100, R0
12. MOV R0, y
13. MOV I, R0
14. ADD 1, R0
15. MOV R0, I
16. lte 10, I
17. jmpt I, 3
18. end ….

2. Diketahui potongan program sebagai berikut :

Int v,n;
v = 12
n = 90
do {
while (v%2==0) {
v = v – 1;
n = n/3 ;
}
if (v > 11)
v = v + 2;
else
v = v – 2;
n=n+3;
} while (n < 35)

No Three Address Code No Code Generator


1. v = 12 1. Mov # 12, v
2. n = 90 2. Mov # 90, n
3. t1= v mod 2 3. Mov v, R0
4. Mod #2, R0
4. t2 = t1 ==0 5. Eq #0, R0
5. Jumpf t2, 11 6. Jmpf R0, 14
6. t3 = v – 1 7. Mov v, R0
8. Sub #1, R0
7. v = t3 9. Mov R0, v
8. t4 = n/3 10. Mov n, R0
11. Div #3, R0
9. n = t4 12. Mov R0, n
10. Jmp , , 3 13. Jmp , , 3
11. t5 = v > 11 14. Mov v, R0
15. Gt #11, R0
12. Jmpf t5 , 15 16. Jmpf R0, 21
13. t6 = v+2 17. Mov v, R0
18. Add #2, R0
14. v = t6 19. Mov R0, v
15. Jmp , , 20 20. Jmp , ,24
16. t7= v – 2 21. Mov v, R0
22. Sub #2, R0
17. v = t7 23. Mov R0, v
18. t8 = n + 3 24. Mov n, R0
25. Add #3, R0
19. n = t8 26. Mov R0, n
20. t9 = n < 35 27. lt #3, R0
21. Jmpt t9, 3 28. Jmpt R0, 3
22. End ..... 29. End .....

Anda mungkin juga menyukai