Christian Semrau, 03.12.1999
AlgDs WS99 Aufgabe 25

 1 CLOAD    0
 2 STORE  [ 2]
 3 LOAD   [ 2]
 4 MULT   [ 2]
 5 STORE  [ 3]
 6 LOAD   [ 1]
 7 SUB    [ 3]
 8 IFGOTO  12
 9 LOAD   [ 2]
10 CADD     1
11 GOTO     2
12 END
 0: ( 1;  0, 15,  0,  0, ...) - CLOAD    0
 1: ( 2;  0, 15,  0,  0, ...) - STORE  [ 2] (=0)
 2: ( 3;  0, 15,  0,  0, ...) - LOAD   [ 2] (=0)
 3: ( 4;  0, 15,  0,  0, ...) - MULT   [ 2] (=0)
 4: ( 5;  0, 15,  0,  0, ...) - STORE  [ 3] (=0)
 5: ( 6;  0, 15,  0,  0, ...) - LOAD   [ 1] (=15)
 6: ( 7; 15, 15,  0,  0, ...) - SUB    [ 3] (=0)
 7: ( 8; 15, 15,  0,  0, ...) - IFGOTO  12  (nojmp)
 8: ( 9; 15, 15,  0,  0, ...) - LOAD   [ 2] (=0)
 9: (10;  0, 15,  0,  0, ...) - CADD     1
10: (11;  1, 15,  0,  0, ...) - GOTO     2
11: ( 2;  1, 15,  0,  0, ...) - STORE  [ 2] (=0)
12: ( 3;  1, 15,  1,  0, ...) - LOAD   [ 2] (=1)
13: ( 4;  1, 15,  1,  0, ...) - MULT   [ 2] (=1)
14: ( 5;  1, 15,  1,  0, ...) - STORE  [ 3] (=0)
15: ( 6;  1, 15,  1,  1, ...) - LOAD   [ 1] (=15)
16: ( 7; 15, 15,  1,  1, ...) - SUB    [ 3] (=1)
17: ( 8; 14, 15,  1,  1, ...) - IFGOTO  12  (nojmp)
18: ( 9; 14, 15,  1,  1, ...) - LOAD   [ 2] (=1)
19: (10;  1, 15,  1,  1, ...) - CADD     1
20: (11;  2, 15,  1,  1, ...) - GOTO     2
21: ( 2;  2, 15,  1,  1, ...) - STORE  [ 2] (=1)
22: ( 3;  2, 15,  2,  1, ...) - LOAD   [ 2] (=2)
23: ( 4;  2, 15,  2,  1, ...) - MULT   [ 2] (=2)
24: ( 5;  4, 15,  2,  1, ...) - STORE  [ 3] (=1)
25: ( 6;  4, 15,  2,  4, ...) - LOAD   [ 1] (=15)
26: ( 7; 15, 15,  2,  4, ...) - SUB    [ 3] (=4)
27: ( 8; 11, 15,  2,  4, ...) - IFGOTO  12  (nojmp)
28: ( 9; 11, 15,  2,  4, ...) - LOAD   [ 2] (=2)
29: (10;  2, 15,  2,  4, ...) - CADD     1
30: (11;  3, 15,  2,  4, ...) - GOTO     2
31: ( 2;  3, 15,  2,  4, ...) - STORE  [ 2] (=2)
32: ( 3;  3, 15,  3,  4, ...) - LOAD   [ 2] (=3)
33: ( 4;  3, 15,  3,  4, ...) - MULT   [ 2] (=3)
34: ( 5;  9, 15,  3,  4, ...) - STORE  [ 3] (=4)
35: ( 6;  9, 15,  3,  9, ...) - LOAD   [ 1] (=15)
36: ( 7; 15, 15,  3,  9, ...) - SUB    [ 3] (=9)
37: ( 8;  6, 15,  3,  9, ...) - IFGOTO  12  (nojmp)
38: ( 9;  6, 15,  3,  9, ...) - LOAD   [ 2] (=3)
39: (10;  3, 15,  3,  9, ...) - CADD     1
40: (11;  4, 15,  3,  9, ...) - GOTO     2
41: ( 2;  4, 15,  3,  9, ...) - STORE  [ 2] (=3)
42: ( 3;  4, 15,  4,  9, ...) - LOAD   [ 2] (=4)
43: ( 4;  4, 15,  4,  9, ...) - MULT   [ 2] (=4)
44: ( 5; 16, 15,  4,  9, ...) - STORE  [ 3] (=9)
45: ( 6; 16, 15,  4, 16, ...) - LOAD   [ 1] (=15)
46: ( 7; 15, 15,  4, 16, ...) - SUB    [ 3] (=16)
47: ( 8;  0, 15,  4, 16, ...) - IFGOTO  12  (jmp)
48: (12;  0, 15,  4, 16, ...) - END

berechnete Funktionen:
c0end = 0
c1end = c1start
c2end = kleinste Zahl deren Quadrat >= c1start ist
c3end = kleinste Quadratzahl >= c1start

JAVA-Konstrukt:
{
  c0end = c2end = 0;
  c1end = c1start;
  while(c2end*c2end < c1start) c2end++;
  c3end = c2end * c2end;
}


Aufgabe 26a
 1 LOAD   [ 2]
 2 IFGOTO  10
 3 LOAD   [ 1]
 4 CADD     1
 5 STORE  [ 1]
 6 LOAD   [ 2]
 7 CSUB     1
 8 STORE  [ 2]
 9 GOTO     2
10 END

berechnete Funktionen (als JAVA-Konstrukt):
{
  c0end = 0;
  c1end = c1start + c2start;
  c2end = 0;
}


Aufgabe 26b
 1 LOAD   [ 2]
 2 CSUB     5
 3 IFGOTO   8
 4 LOAD   [ 2]
 5 MULT   [ 1]
 6 STORE  [ 1]
 7 GOTO    11
 8 LOAD   [ 2]
 9 ADD    [ 1]
10 STORE  [ 1]
11 END

berechnete Funktionen (als JAVA-Konstrukt):
if (c2start<=5) {
  c0end = c1end = c1start + c2start;
  c2end = c2start;
}else{
  c0end = c1end = c1start * c2start;
  c2end = c2start;
}

