ࡱ> za߿ߝXo( UUUUzag\Oy Ek( DD@=2y;PF`p2]s *$ ]`OxZ]hU>3M-NLҴu)"*,ԚXͦmdkvUA[!>Ђ<&Ђ RDDϹs;wg,N8{{ι{ Q}nݛ*ؾ+6~b/J{rޣ$ۈ^= '?1ɳمe2>;/;,w[oֹ'K:ź>gީ6B]GvκV_]_f])])uLa?^XFLu}{ fЅyCNS&ۊ`́ѱ1(ֲy ߶%߁-!},㴷K}L><v ҳuڊS@kt%FttԎ4o\`Ԣ˛՛]^VTsAD#l\;Xݠ6"fDL_TyfPR}"|zatވA"^7TlŖA4Ϛ=i yqR4t>@hH'CUx xKk i9t /䌢1DZwqQ g9kJq{> [П0@t:T0P&qۄ1Ж)| q~|*83F0rǶoK)(=j\E.:TOc}U?HbN}s^\o6aƺ(udڡ_l6'=»=.P,%48r猓Yp`l{w88}u9q󭯑Az¼Sk,[0ZG2'M\ElW +Y*S:@ꯐ@Ez -ĵZ֛Dk5u\s^!A!zG4[u]r`!m^ZW_a%J?Dk&ckMt,fDgZ86uBc\2?11Qįhh3U^Fy7ilEEyeuܯ`ZEs| ~Kj*VRߛKW)$̴N ?C5޺;h>7bf+z s^3 [͗ /ۯ]uz!nw9pZǍt^J &9:^]Vj@j3fq`^^L$ybJOc,x4Wƶ-G軎#v )X4W;0ɝ|{'wOr'[%.w^|D"E荍l7~}Uc1Xs`1, [ozޏ! v5`Ƃ8v_|3-d))' S%x"5|W /7J+{^t%]g7m˚#}4tkCxYs+e7_}_Yaœ}Ŵ}yp} K\u%mtW4~0~s؏#-FR0^r`xq ^d m˂a|o*>^d m{*C װ jdߞ[] =fm:]~&W/3'ɪi5\̌i`<ѐ,%qK1]fjә"snhy?K+h]YsGlEvChm wgo~;l~TWzѾ&nǚ xIbV I:/:a/Y~ttIg}Xpuzum蜔C[,Uo :u eOzvz׋z;t]c׽z;tuY3]o^?˺\tݏ~\zz\@gCW<(    8Worksheet Excel.Sheet.802Microsoft Excel WorksheetH/ 0|DTimes New RomanTTxܖ 0ܖDTahomaew RomanTTxܖ 0ܖT" DWingdingsRomanTTxܖ 0ܖh0DArialngsRomanTTxܖ 0ܖ@DSymbolgsRomanTTxܖ 0ܖh A.  @n?" dd@  @@`` 8BDHA% / 0 8 9.RJ($*: )?r$߿ߝXoifr$g\Oy Ekii"$2y;PF`p2]s <AA@8gʚ;ʚ;g4KdKdl 0ppp@ <4!d!d k 0Tx<4dddd k 0Tx <4BdBd l 0T0___PPT10 ___PPT9nu=!BWk@~PNG  IHDRF} PLTE3:tRNS@f cmPPJCmp0712Om9IDATc``b $<&40(Zжj˂AtM iIENDB`   X . L .?B+ .cpeg323-05F\Topic2b-323O =$0-Topic 2b ISA Support for High-Level Languages..8Introduction to Computer Systems Engineering (CPEG 323)2-2 9What are Processors For?P$ Most processors run code written in a high-level language, and many are used in multi-user environments. It is therefore necessary to understand: How high-level languages are represented in machine language The operation of compilers, linkers, loaders and debuggers What ISA features support the needs of high-level languages What ISA features support the needs of the operating system\ "  " ( " *x9(Overview of Compiler( Source program Machine code Example: INPUT PROGRAM: int foo( ) { int x=0; return (x + x) ; } !cP0 c>F4:)#Output Assembly Code (unoptimized)($P( foo: sub $sp, $sp, 8 % Push stack frame sw $fp, 8($sp) % Save old frame pointer add $fp, $sp, 8 % Set new frame pointer sw $ra, -4($fp) % Save return address add $t0, $a0 $a0 % Addition move $v0, $t0 % Copy return value lw $ra, -4(%fp) % Restore return address lw $fp, 0($fp) % Restore frame pointer add $sp, $sp, 8 % Pop stack frame jr $ra % Jump to return address ,P&)"c%G;* Hfoo: add $v0, $a0, $a0 % Set result jr $ra % Jump to return address"IPD6"<+Tree of Function ActivationsP(Starting from the top (e.g., main () in C/C++), the history of function calls forms a tree A path following the sequence function calls and returns forms a  depth-first traversal of the tree At any point in time, the only function calls whose variables need to be stored are the direct ancestors of the function call currently being executed.f[ " x " (e " x " ( " xZ!Example: Recursive Function Calls"P"( Calling a Leaf Function(@ To call a function which never calls another and doesn t require much memory: Caller: put arguments to the function in $a0-$a3 If anything important in $t0-9, move them now! jal to the function Function: do your job (use $t0-$t9 if needed) Jr to $ra Caller: continue where you left off O " n " (t " x8 -x$ " x " nP[8%>?&  Stack Frames (If a function needs more memory and/or may call others, it uses a stack frame, which holds: Automatic variables (non-static variables declared within function) Arguments to the function (just another type of local variable) The  return address (since $ra overwritten by call) Saved registers from caller ($s0-$s7) if you need to use them  Spill registers, including $t0-$t9 when calling othersH\x(0 " x]07'Illustration of Stack Frames(P(  $Calling a Non-Leaf Function (Caller)&%$(Put arguments to the function in $a0-$a3 Save contents of $t0-9 if they will be needed later If more than 4 args, push them onto stack jal (or jral) to beginning of the function code0 " 0 " >l$ $Calling a Non-Leaf Function (Callee)&%$(Push current fp onto stack Move fp to top of frame (just below old sp) Set sp to (fp  frame size) Frame size is the same for every call of the same function Known at compile-time Use displacement addressing to get at local variables Save $s0-$s7 (whichever you need to reuse) and $ra in frame Save $a0-$a3 to frame if needed (e.g., calling another function) c " xQ -x6 -x} -x " xHQ6}P 0L)Returning from Non-Leaf Function (Callee)*P*("Put return values (if any) in $v0 and $v1 Restore $s0-$s7 (whichever were saved) and $ra from frame Restore sp to just above current fp Restore old fp from stack frame Jump to $ra (jr) Caller can get return args in $v0 and $v1, if any> " x2 " xtV-  Other Storage: Global Variables P (In C/C++,  global variables are Variables declared outside of any functions Static variables (inside or outside a function) Static data members of a class (C++) Properties: Only one copy of each (unlike automatic variables) Initialization allowed (set value before main () starts) All in one region of memory, accessed through $gp (r28) ! " x -x -(  " x -x " x!  J %Other Storage: Dynamic Storage (Heap)(&P%(In C/C++, the  heap contains Blocks of memory allocated by malloc () etc. Objects created using the new keyword (C++) Properties: Stored in a big chunk of memory between globals and stack Controlled by the programming language s library (e.g., libc) Can be grown if needed No dedicated reg. Like $gp; everything goes through pointers " xe -x -(: " x -xG:P<jC1# Typical Layout of Program(P(  %What an Executable Program Looks Like(&P%(When you execute a program, it is in the form of an  executable The executable contains everything you need to run your program Every function used, starting with main()  the  text segment Values of all initialized global variables  the  data segment Information about uninitialized globals Every function and every global variable has a unique address in memoryA " x " (@ " x -x -(H " xB@  H, J Executing an Executable(P(When you execute a program, the loader: Allocates space for your program (details vary by OS) Copies the text and data segments of the executable to memory Jumps to a known starting address (specified in the executable) Once the executable starts running at that starting address, it Initializes regs such as $gp and $sp; initializes heap (if used) Sets uninitialized globals to 0 (if the language requires this) Sets up command line args into data structure (e.g., argc/argv) Does jal to start of main () function( " n -n " @ " n -n(@) * ; ,  0` @EoOV` @Eff؂o` MMMwww` 33f3Ƨgzf` 3ffE` JH3f̙ff` 33̙fRP` =bf>?" dd@,?wnd@ n< w_@nA``< n?" dd@   @@``PP   @ ` ` p>> ( (CC '(   !T    "b   # " \    "B   HDA "B   HDA "B   HDA "@@B   HDA "B   HDA "B   HDA "B   HDA "@@B   HDA "B   HDA "B   HDA "B   HDA "@@B   HDA "  B   HDA "  B   HDA "  B   HDA "@ @ B   HDA "  B   HDA "  B   HDA "  B   HDA "@@B   HDA "B   HDA "B   HDA "z\    "B   HDA "B   HDA "B   HDA "@@B   HDA "B   HDA "B !  HDA "B "  HDA "@@B #  HDA "B $  HDA "B %  HDA "B &  HDA "@@B '  HDA " B (  HDA " B )  HDA " B *  HDA "@ @ B +  HDA " B ,  HDA " B -  HDA " B .  HDA "@@B /  HDA "B 0  HDA "B 1  HDA "B 2  HDA "@@B 3  HDA "B 4  HDA "B 5  HDA "B 6  HDA "@@B 7  HDA "B 8  HDA " 9  # t?A?60%"@`tB :  6D"tb `  ; # "|i4 tB < B 6D"`  tB =  6D"PP 2 > B  BCENGGHʲI[TQ zR(VzR(V[T`TzR(V[T`T" ? 6X "  T Click to edit Master title style! ! @ D Rectangle: Click to edit Master text styles Second level Third level Fourth level Fifth level"0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S A 6z "``  \*  B 6z "`  z ^*  C 6< z "`  z ^* H  0޽h ?>  @Eff؂o___PPT92p22 Blueprint*  0 }*u*@GG)(  B$T   "6b  # "  T??"@`\   "B  HDA "B  HDA "B  HDA "@@B   HDA "B   HDA "B   HDA "B   HDA "@@B   HDA "B  HDA "B  HDA "B  HDA "@@B  HDA "  B  HDA "  B  HDA "  B  HDA "@ @ B  HDA "  B  HDA "  B  HDA "  B  HDA "@@B  HDA "B  HDA "B  HDA "B  HDA "B  HDA "B  HDA "@@B  HDA "B   HDA "B ! HDA "B " HDA "@@B # HDA "B $ HDA "B % HDA "B & HDA "@@B ' HDA " B ( HDA " B ) HDA " B * HDA "@ @ B + HDA " B , HDA " B - HDA " B . HDA "@@B / HDA "B 0 HDA "B 1 HDA "B 2 HDA "@@B 3 HDA "B 4 HDA "B 5 HDA "B 6 HDA "@@B 7 HDA "B 8 HDA "tB 9 6D"$\ /c3  : "/c3 B ; 6D"/3 ,$D  0tB < 6D" tB = 6D"c2 >B  ZBCENGGHʲI[TQ zR(VzR(V[T`TzR(V[T`T"]Ft\  ? "tB @ 6D"r r tB AB 6D"442 B  ZBCENGGHʲI[TQ zR(VzR(V[T`TzR(V[T`T"   C 6| "Pp  | T Click to edit Master title style! ! D l| Rectangle: Click to edit Master text styles Second level Third level Fourth level Fifth level"%p0u  | W#Click to edit Master subtitle style$ $ E 6| "`` | \*  F 6H| "`  | ^*  G 6А| "`  | ^* H  0޽h ?/ >B @Eff؂o  0 `$(  $ $ 0$  P   &  T*   $ 0l$     &  V*  d $ c $ ?  &  $ 0$$   @ &  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S $ 6l&  `P  &  T*   $ 6&  `  &  V*  H $ 0޽h ? ̙3380___PPT10.^\Džy 0 00(  x  c $Л|CP@   | x  c $|DpP?  | H  0޽h ? ̙33y___PPT10Y+D=' = @B +m  0 P$(  r  S v?    r  S ,@ {)  H  0޽h ? @Eff؂oy___PPT10Y+D=' = @B +  0 ( @(  x  c $||?   | x  c $@|@  | B   `Do))?p Xp  3 r1))?  9@ NCOMPILER* H  0޽h ? 333gggy___PPT10Y+D=' = @B +y  0 00(  x  c $?    x  c $\@ 0  H  0޽h ? 333gggy___PPT10Y+D=' = @B ++  0 RJ (    Z)gֳgֳ ?b d Output Assembly Code (optimized)(! P(    `4-gֳgֳ ?@    H  0޽h ? 333gggy___PPT10Y+D=' = @B +\ 0 {P(    <9pj ])MIPS assembly code of the procedure swap * *r  6A ??l  0  <P?  Tswap(int v [ ], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; }U U67X  0 H  0޽h ? ̙33y___PPT10Y+D=' = @B +m  0 $(  r  S F? P   r  S G@ gl   H  0޽h ? @Eff؂oy___PPT10Y+D=' = @B +  0 ;@a(  r  S X?    R  s *   < T  :fib(4)R  s * h   <4)9  :fib(3)R   s ** _.    < H 0  :fib(2)R   s * H  #   <V= T   :fib(1)R  s *b"  <؏<3 :fib(2)R  s *= YA   <[ */  :fib(1)R  s *2 B6   < P N$  :fib(0)R  s *@ D   <P^ f2  :fib(1)R  s *5 ~Q 9   < S " '  :fib(0)^B @ 6D< dB @ <DY ^B  6D pdB  <DU ^B  6D"l@( dB  <D'5 ^B @ 6D. 4 dB  @ <D3aIA ^B ! 6DT  dB " <D ! ^B #@ 6D dB $@ <Du]- ^B % 6D. X4 dB & <D+ 9 ^B '@ 6D2 8 dB (@ <D7 qYE XB ) 0D  XB * 0D) )  + <,#1  54 , <# a 55 - <8[ 52 . <d 51 / <<)& 50 0 <S 51 1 <"u  51 2 < ŧ e  53 3 <ȧVl ' * 53 4 <Ḩ  51 5 <ϧ7 51 6 <pӧ= 52 7 <קs9G  52 8 <ڧ B  51 9 <,ާ 'r  51 : < n  51 ; <T] ,1  50X < 0 / xJ XB = 0D: : ^B > 6D   ? < /xN  LInput value Return valueH  0޽h ? @Eff؂oy___PPT10Y+D=' = @B +u  0 $$(  r  S 4?    r  S  @ yH  H  0޽h ? @Eff؂oy___PPT10Y+D=' = @B +m  0  $(   r  S P $ ?   $  r  S ( $ @ N $  H  0޽h ? @Eff؂oy___PPT10Y+D=' = @B +  0  '((  x  c $\$ ?   $  $L  8  # 8 `B  0D 8 `B  0D 8 R  s * R  s * [R  s *Z  R  s *   6` Y$fp^B  6D@ @  6$    7$sp^B  6DT  T   6"$ K }  T Saved argument Register (if any)!!   64'$  i HSaved return address   6+$ i@  RSaved saved Registers (if any)   60$  0  X$Local arrays and Structures (if any)%% R  s *  6$4$ e @ High address    6|8$ Rag Y$fp  6=$ RzU 7$sp^B  6DUD^B  6DUD$L  8  # 8 `B  0D 8 `B  0D 8 F    8b Z  s *&N  8    `B  0D 8 `B  0D 8   6@$ ({ Y$fp ! 6E$ Ai 7$sp^B " 6D ^B # 6D    $ 6I$    ? Low address   % 6 1000 8000   2\ B$  a !  7hex 4\ <@$ (  Gpc 0040 0000 5\ <$  R  7hex`B 6\ 0D ?   7\ <$ zX, k(From Patterson and Hennessy, p. 152; COPYRIGHT 1988 MORGAN KAUFMANN PUBLISHERS, INC. ALL RRIGHTS RESERVED)ll H \ 0޽h ? @Eff؂oy___PPT10Y+D=' = @B +  0 ``0(  `x ` c $$ ?   $  x ` c $$ @ J $  H ` 0޽h ? @Eff؂o  0  d0(  dx d c $,;|?   | x d c $<|@ ^# | H d 0޽h ? @Eff؂o+<x[ pq-GH)"hb̐HSq A|>$6!ZBEBKN*V%qJer_Q,.\b9_9J#=ۃJ*;%U홝ٙ{J/?eϱ\BLG@LxR|KDgF Et"RD"%ʤ _TT i9Ry9vA`VkNxy SFDe|Fd56^zǦȠ0 Et:> -WXC;'Q?o!e@߆s09 ]֟luJiSCk5HRTBZTt ҵHZZڐރFjG@Zi-R':H!]t{e=7 [7u3 v3*EƯPK]ľs1x L[ esC2 M98m7崭]GRhW6+4 -ŔH)q.EzT5 MUUTΉ+TQ*EhSUĒn˳uKqPHb^E|ffFnU:&$:F#؊CAF /1$=Ɂ+;bvw֛5c&ߨ*zx._`4PVV&\GyQsZwK+GfO9b<+.3Fڱ6rT6bO=z{s+WϭjBekjS-+W7ްLmWoߕfJaLmiL*|D)/Gd]; o2L2A*6Tksc6|=4RQg9w!O.|\V&lsc*l.jw(5,;g8p0\]$@\W1^Ro*G}iO!UVzqlXp7T0l<8KRoضGq):/*sw!gbX/>| w_؟qg ]g _M!W/TCoVR\O 1kdIea$|28wBᄏGa<܁tj8ǫSF1Ǐ]ZzUJȑC N&;k1ޡSH7 Ј#-;bD fr-eԯ!Alƙӎ4Fz2F.1D!c 3V$1` + Q!XSFPӚF7&e a.3>nd[jކX#I)}5PZ02ÙKdۨ4e$-T%Ods쎁+Y:Y.ycщLnș8%4=218Awe sppqؿ3=?'ab.M8)-"4R># s(IcTw)ztdi!6nDv}gK7kӚT>Ǖ3}bpgeT[ؓ$?E5MSrz,۴q0( +IR>{n k ?ـy/^%@ū.v(cwEa7}FBߞ4}!^px6Ϟd5WH=sꎁN^S{"tAGe)?XJ̕@ʑ/L'&k?N͞r~ ٗ߼O_41m|1iwJ&f^I?\uH!߁~}_ أvfC'3}D=xH;!<$qL.-]UW~ßBA5.Uv$Pl|_}aEr6B ϫ>.=cnn|!c3FU 8R;28Wc>x=[.;[Q**mv%v:vZ*-3W^|{r,a"Lua},\o%,3 0!/E\zb,c`1,naqŴXOلJ-LIXG^VqAFASxkJ^PTS]>\ˈ)SנvSNYKV%+RV`YRV%"-\1eix$P/q )S"ZX? j*AC3nػ9ލI!˻!nr"ly$Ѥ0{$.e-#KVj 0w+%wĥ9jieRseYURV%Kd.Y:*tKβIYEy(b咻ȥ9fi"*ƚRscYRV%+nETQqURV܊8GTwET'9U쉨+J8LpDE+J8jW-Ggp{dp*dd,ZJY!ed%-&ٻfdJYI˻Inty2һeR|/ߏ:NnOw׈Y(v+7wlM׎vVttЪc;ۧsT)_%R )k~˞ eofɟoY盰L3~jd#8i$Kxk3u`v3׌_>_P~ϣ9 cĊ'juU<9 @Zј}^eRü{MQmxkMb_=b.l QX0͊v:O{N5uG]\0oǻ=WFR*MϨ6*T3L2xETU¾{]rsK ރ&CTW}_&H b9|M9btj>bMw bY_O">[_=G?gۖ'{#k@G\1$ߢ!ߣ>ONO҃Oz|Ey[nJ[p[x傔wM\'ҾoWCLV2>߆kuL=\wn߲-۷X5/Xf6"疭Hxn-bZD(t"]XvmҖrp_<Oi6M¯t$Q0# 0l  7`f,5 <1Oh+'0: hp , L X dpx(Lecture 6 Instruction Set ArchitecturesPGaoPC:\Program Files\Microsoft Office\Templates\Presentation Designs\Blueprint.potGuang R. Gao43Microsoft PowerPoint@g@ EZ{@_پGH9g  -  y--$xx--'--$:::--'-B( DD--$ --'-B( DD--$ --'-B( DD--$ --'-B( DD--$ --'-B( DD--$ --'-B( DD--$  --'-B( DD--$ $$%%%%%%%%$$--'-B( DD--$ ****++++****--'-B( DD--$ ///00000///--'-B( DD--$ 445555555544--'-B( DD--$ ::::;;;;::::--'-B( DD--$ ???@@@@@???--'-B( DD--$ DDEEEEEEEEDD--'-B( DD--$ JJJJKKKKJJJJ--'-B( DD--$ OOOPPPPPOOO--'-B( DD--$ TTUUUUUUUUTT--'-B( DD--$ ZZZZ[[[[ZZZZ--'-B( DD--$ ___`````___--'-B( DD--$ ddeeeeeeeedd--'-B( DD--$ jjjjkkkkjjjj--'-B( DD--$ ooopppppooo--'-B( DD--$ ttuuuuuuuutt--'-B( DD--$ xxxxx--'-B( DD--$ x x x x x --'-B( DD--$ xxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxxx--'-B( DD--$ x xxx --'-B( DD--$ %%x%x%x%x$x$%%%%%--'-B( DD--$ ++x+x*x*x*x***+++--'-B( DD--$ 00x0x/x/x//0000--'-B( DD--$ 55x5x5x5x4x455555--'-B( DD--$ ;;x;x:x:x:x:::;;;--'-B( DD--$ @@x@x?x?x??@@@@--'-B( DD--$ EExExExExDxDEEEEE--'-B( DD--$ KKxKxJxJxJxJJJKKK--'-B( DD--$ PPxPxOxOxOOPPPP--'-B( DD--$ UUxUxUxUxTxTUUUUU--'-B( DD--$ [[x[xZxZxZxZZZ[[[--'-B( DD--$ ``x`x_x_x__````--'-B( DD--$ eexexexexdxdeeeee--'-B( DD--$ kkxkxjxjxjxjjjkkk--'-B( DD--$ ppxpxoxoxoopppp--'-B( DD--$ uuxuxuxuxtxtuuuuu--'-B( DD--$ {{x{xzxzxzxzzz{{{--'-B( DD--$ xxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxxx--'o--%)--'o--%A--'o--%Y55--'o--%t --'o-- %     --'o--%)__--'o--%6h--'o-- %__``aaa``_^]]]--'@"Tahoma-. @E2 u 9/21/2005."System9-@"Tahoma-. @E2 uDcpeg323b.-@"Tahoma-. @E 2 uK-G.-@"Tahoma-. @E 2 uL05F.-@"Tahoma-. @E 2 uO\G.-@"Tahoma-. @E2 uPTopic2bb.-@"Tahoma-. @E 2 uV-G.-@"Tahoma-. @E 2 uW323.-@"Tahoma-. @E 2 u1G.-@Arial-. ff2 BTopic 2b.-@Arial-. ff%2 $ISA Support for High.-@Arial-. ff 2 $z-G.-@Arial-. ff2 $}Level .-@Arial-. ff2 0< Languages.-@Arial-. @E-2 C,Introduction to Computer .-@Arial-. @E$2 L3Systems Engineeringh.-@Arial-. @E2 \C (CPEG 323).-Root EntrydO)s@PicturesCurrent User)SummaryInformation(: xecutable Program Looks LikeExecuting an Executable  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles4 $, _0 oNEoNE$_0  0Guang R. GaoGuang R. Gao  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)PicturesCurrent UserSummaryInformation(:PowerPoint Document(T DocumentSummaryInformation8Root EntrydO)`LojPicturesCurrent UserSummaryInformation(: ՜.+,D՜.+,|    On-screen ShowUDelT0 Times New RomanTahoma WingdingsArialSymbol BlueprintMicrosoft Excel Worksheet.Topic 2b ISA Support for High-Level LanguagesWhat are Processors For?Overview of Compiler$Output Assembly Code (unoptimized)Slide 5Slide 6Tree of Function Activations"Example: Recursive Function CallsCalling a Leaf Function Stack FramesIllustration of Stack Frames%Calling a Non-Leaf Function (Caller)%Calling a Non-Leaf Function (Callee)*Returning from Non-Leaf Function (Callee) Other Storage: Global Variables&Other Storage: Dynamic Storage (Heap)Typical Layout of Program&What an Executable Program Looks LikeExecuting an Executable  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles4 $, PowerPoint Document(T DocumentSummaryInformation8