Professional Documents
Culture Documents
Chöông 6: Sinh Maõ Ñoái Töôïng
Chöông 6: Sinh Maõ Ñoái Töôïng
Chöông 6: Sinh Maõ Ñoái Töôïng
SINH MA OI TNG
1
Chng Bien Ma Ma Chng
Bo toi Bo sinh
trnh dch trung u trung ma trnh
nguon pha gian ma gian oi tng dch
trc
Bang danh bieu
t1 := 4 * I
t2 := a [t1]
t3 := 4 * i
t4 := b [t3] B2
t5 := t2 * t4
t6 := prod + t5
prod := t6
Hnh 9.4. Lu o cua
t7 := i + 1 chng
I := t7 trnh
if I < = 20 goto B2
Vong lap
9.4. Bo sinh ma n gian
Bo sinh ma nay se sinh ma oi tng cho cac ma trung
gian ba a ch.
ac ta thanh ghi va a ch
1. Bo ac ta thanh ghi se lu gi nhng g ton tai trong
tng thanh ghi.
2. Bo ac ta a ch se lu gi cac v tr nh cha tr
cua cac danh bieu.
Ma Ma oi Gia Bo ac ta Bo ac ta
trung tng thanh ghi a ch
gian
t := a b MOV a, R0 2 Thanh ghi rong, t trong R0
R0
SUB b, R0 2 cha t
u := a c MOV a, R1 2 t trong R0
SUB c, R1 2 R0 cha t u trong R1
v := t + u ADD R1, R0 1 R1 cha u u trong R1
R0 cha v v trong R0
d := v + u ADD R1, R0 1 R1 cha u d trong R0
MOV R0, d 2 R0 cha d d trong bo
nh
Sinh ma cho loai phat bieu khac
(1) t1 := 4 * i
(2) t2 := a t1
(3) t3 := 4 * 1
(4) t4 := b 3
(5) t5 := t2 * t4
(6) t6 := prod + t5
(7) prod := t6
(8) t7 := i + 1
(9) i := t7
(10) if i < = 20 goto (1)
t6 , (1)
+ prod t5
t4
prod0 [
[ + 20
] t1, t3 t7 ,
]
i
a 1
b i0
4
b
i0
4
t6
+ t5
t4
prod0 t2
[ [ b)
] ] t 1, t 3
a
b i0
4
t6, prod
+ t5
t4 c)
prod0 t2
[ [
] ] t 1, t 3
a
b i0
4
t6, prod
+
t5
t2
prod0 t4 d)
[
[
] t1, t3
]
a + t7
b
4 i0 1
t6, prod
+
t5
t2 (1)
prod0 t4
[
[ t 1, t 3 t 7, i
]
]
a + 20
b
4 i0 1
e)
(1) While neu con cac nut trung gian cha c liet ke
ra
do begin
(2) Chon nut cha liet ke n; tat ca cac nut cha me cua
no a liet ke
(3) liet ke n;
(4) While con m tan cung ben trai cua n, co cac cha
me a liet ke va no khong phai la nut la do begin
(5) liet ke m;
(6) n := m;
end;
end
Th du 9.7. Giai thuat mo phong 9.8 e tao s sap
xep cua cac ma trung gian (H.9.9).
1
3
+ 2
+
8
5
+ 6
c d e 12
a
7 11
9 b
10
(1) if n la la then
(2) if n la con tan cung ben trai cua nut cha
cua no
then
(3) label (n) := 1
(4) else label (n) := 0
else begin /* n la nut trung gian */
(5) gia s n1 , n2 , , nk la con cua nut n, c
sap theo th t cua ten, sao cho
label (n1) > label (n2) label (nk )
(6) label (n) := max (label (ni ) + i 1)
1<i<k
Th du 9.8. Chung ta xet cay (H.9.8)
t4
2
2
t1 1 t3
a b e t2 1
1
0 1
c d
1 0
l 0
1
T1
T1 b)
a) +
+
+
+ ti4
T1 + +
+
ti3
T4
d)
Ti1 Ti3
T2 T3
Hnh 9.11. Chuyen oi cay bang phep
c) hoan v, ket hp
Cac bieu thc chung
1 4
3 5 8
2
6 4 4 1 6 7 1 1
2 1 2
6
1
2
9 1
8
0