編譯原理 第13次作業
151220129 計科 吳政億 [email protected]
第一題 8.6.5
t1 = b * c
LD R1, b
LD R2, c
MUL R1, R1, R2
t2 = a
LD R2, a
t3 = t1 + t2
ADD R1, R1, R2
x = t3
ST x, R1
R1 | R2 | a | b | c | x | t1 | t2 | t3 |
---|---|---|---|---|---|---|---|---|
a | b | c | x | |||||
t1 | c | a | b | c,R2 | x | R1 | ||
t1 | a,t2 | a,R2 | b | c | x | R1 | R2 | |
t3 | a,t2 | a,R2 | b | c | x | R2 | R1 | |
t3 | a,t2 | a,R2 | n | c | x,R1 | R2 | R1 |
第二題 9.1.1
- 基本塊 B3,B4 B 3 , B 4 是一個循環,基本塊 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 是另一個循環。
-
- (3) c = 1 + b
- (4) d = c - 1
- (6) d = 1 + b
- (8) b = 1 + b
- (9) e = c - 1
-
- 對于循環 B3,B4 B 3 , B 4 來說, a+b a + b 是全局公共子表達式
- 對于循環 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 來說,(6)(8)的 a+b a + b ,(9)的 c−a c − a 是全局公共子表達式
- 略
-
- 對于循環 B3,B4 B 3 , B 4 來說, a+b a + b 是全部循環不變計算
- 對于循環 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 來說,沒有全部循環不變計算
第三題 9.1.4
dp =
i =
t1 =
L: t2 = A[t1]
t3 = B[t1]
t4 = t2 * t3
dp = dp + t4
i = i +
t1 = t1 +
if i<n goto L