?? ??? - PowerPoint PPT Presentation

About This Presentation
Title:

?? ???

Description:

Title: Author: Last modified by: SEC Created Date: 5/25/1998 9:31:14 AM Document presentation format: – PowerPoint PPT presentation

Number of Views:15
Avg rating:3.0/5.0
Slides: 25
Provided by: 66459
Category:
Tags:

less

Transcript and Presenter's Notes

Title: ?? ???


1
????? ????
2
??? ??
  • ? ??? ???
  • ?? ??? ??? ???
  • ????
  • PC ? ???? ??
  • SP ??? ???
  • ?? ????? ??

3
???? ??
  • ?? ???
  • do
  • PC PC 1
  • execute the instruction in CODEPC-1
  • od
  • ???? ??
  • ??? ??? ?? (?? ????? ????)
  • ????? ?? ??? ??? ??

4
???? ???
  • ????
  • add STORESP-1 STORESP-1 STORESP
  • SP SP - 1
  • sub STORESP-1 STORESP-1 - STORESP
  • SP SP - 1
  • mul STORESP-1 STORESP-1 STORESP
  • SP SP - 1
  • div STORESP-1 STORESP-1 / STORESP
  • SP SP - 1
  • neg STORESP - STORESP

5
???? ???
  • ????
  • and STORESP-1 STORESP-1 and STORESP
  • SP SP - 1
  • or STORESP-1 STORESP-1 or STORESP
  • SP SP - 1
  • not STORESP not STORESP

6
???? ???
  • ????
  • equ STORESP-1 STORESP-1 STORESP
  • SP SP - 1
  • neq STORESP-1 STORESP-1 ? STORESP
  • SP SP - 1
  • geq STORESP-1 STORESP-1 ? STORESP
  • SP SP - 1
  • grt STORESP-1 STORESP-1 gt STORESP
  • SP SP - 1
  • leq STORESP-1 STORESP-1 ? STORESP
  • SP SP - 1
  • les STORESP-1 STORESP-1 lt STORESP
  • SP SP - 1

7
????? ???
  • ????
  • ldo a SP SP 1
  • STORESP STOREa
  • ldc v SP SP 1
  • STORESP v
  • ind STORESP STORESTORESP
  • ????
  • sro a STOREa STORESP
  • SP SP - 1
  • sto STORESTORESP-1 STORESP
  • SP SP - 2

8
????
  • ???? ??
  • AST? ????? ??? ??
  • ???? ??(postorder) ??
  • ???? ??
  • ??? ?? ?? code()
  • ??? ?? ?? codeL()
  • ??? ?? ?? codeR()

9
????? ?
ldo ?(a) ldc 1 add ldc 3 mul
(a1)3
10
???? ??
  • code(x e) ? codeL(x) codeR(e) sto
  • codeL(x) ? ldc ?(x)
  • codeR(x) ? codeL(x) ind
  • codeR(c) ? ldc c
  • codeR(e1 e2) ? codeR(e1) codeR(e2) add
  • similar for -, , /
  • codeR(-e) ? codeR(e) neg
  • codeR(e1 e2) ? codeR(e1) codeR(e2) equ
  • similar for gt, gt, lt, lt, !

11
???? ??? ?? ? (1)
  • code(a (a1)3)
  • codeL(a) codeR((a1)3) sto
  • ldc ?(a) codeR((a1)3) sto
  • ldc ?(a) codeR(a1) codeR(3) mul sto
  • ldc ?(a) codeR(a) codeR(1) add codeR(3)
    mul sto
  • ldc ?(a) codeL(a) ind codeR(1) add
    codeR(3) mul sto
  • ldc ?(a) ldc ?(a) ind codeR(1) add
    codeR(3) mul sto
  • ldc ?(a) ldc ?(a) ind ldc 1 add codeR(3)
    mul sto
  • ldc ?(a) ldc ?(a) ind ldc 1 add ldc 3
    mul sto

12
???? ???
  • ????
  • ujp a PC a
  • fjp a if STORESP false
  • then PC a
  • SP SP - 1

13
?? ??? ?? (1)
  • code(st1 st2) ? code(st1) code(st2)
  • code(if e then st) ?
  • codeR(e) fjp l code(st) l
  • code(if e then st1 else st2) ?
  • codeR(e) fjp l1 code(st1) ujp l2 l1
    code(st2) l2

14
?? ??? ?? (2)
  • code(while (e) do st) ?
  • l1 codeR(e) fjp l2 code(st) ujp l1 l2
  • code(for (xe1 to e2) st) ?
  • code(xe1) l1 codeR(xlte2) fjp l2 code(st)
    code(xx1) ujp l1 l2

15
???? ??? ?? ? (2)
  • code(while (agtb) begin c c 1 a a - b end)
  • l1 codeR(agtb) fjp l2 code(c c 1 a a -
    b) ujp l1 l2
  • l1 codeR(a) codeR(b) grt fjp l2 code(c c
    1 a a - b) ujp l1 l2
  • l1 codeL(a) ind codeL(b) ind grt fjp l2
    code(c c 1 a a - b) ujp l1 l2
  • l1 ldc ?(a) ind ldc ?(b) ind grt fjp l2
    code(c c 1 a a - b) ujp l1 l2
  • l1 ldc ?(a) ind ldc ?(b) ind grt fjp l2
    code(c c 1) code(a a - b) ujp l1 l2
  • ...

16
????? ?????
  • FP ?????? ?? ??? ???? ????

FP
SP
17
????? ??
  • ???? (parameters)
  • i?? FP2i
  • ???? (local variables)
  • i?? FP2pi
  • p ????? ??
  • ??? ??
  • ?????? ??
  • FP???? ????? ??

18
???? ?? ???
  • ???? ??
  • lod a SP SP 1
  • STORESP STOREFPa
  • lda a SP SP 1
  • STORESP FP a
  • str a STOREFPa STORESP
  • SP SP - 1
  • ?? ?? ??? ??
  • codeL(x) ? lda ?(x)

19
????/?? ?? ???
  • ????? ??
  • mst STORESP2 FP
  • SP SP 3
  • cup p a FP SP - (p2)
  • STOREFP2 PC
  • PC a
  • ????? ??
  • ssp a SP FP a

20
????/?? ?? ???
  • ?? ???
  • retf SP FP
  • PC STOREFP2
  • FP STOREFP1
  • retp SP FP - 1
  • PC STOREFP2
  • FP STOREFP1

21
????? ??
  • ???? ??
  • code(call name(p1, , pn)) ?
  • mst codeR(p1) codeR(pn) cup n lname
  • ???? ??
  • code(proc name(param) vardecl body) ?
  • lname ssp pv2 code(body) retp

22
??? ??
  • ?? ??
  • codeR(name(p1, , pn)) ?
  • mst codeR(p1) codeR(pn) cup n lname
  • ?? ??
  • code(func name(param) vardecl body) ?
  • lname ssp pv2 code(body) retf
  • ??? ??
  • code(return e) ?
  • codeR(e) str 0 retf

23
main? ??
  • main ??
  • code(main vardecl body) ?
  • ssp v2 code(body) stp

24
??? ???
  • ?? ??
  • i read()
  • ?? ????
  • write(i)
  • ??? ???
  • in SP SP 1
  • STORESP input device
  • out output device STORESP
  • SP SP - 1
Write a Comment
User Comments (0)
About PowerShow.com