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; }