ÐÏࡱá>þÿ DþÿÿÿþÿÿÿABCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€zðaÝâÝß¿ß�Xoñçò¹˜ä( ‰ ‰ ÿÿÿîU»UîU»U€zða§Îg\ÓOðy �´­÷Ek‘Í( ‰ ‰ ÿÿÿªDªªDªèR�é(€à8Ø  t ×`Óºwww.intel.comº*http://www.intel.com/ò/È 0ÒÕ·DTimes New RomanT©T©ì¡Ü–¾ 0Ü–Õ·DTahomaew RomanT©T©ì¡Ü–¾ 0Ü–Õ" ·DWingdingsRomanT©T©ì¡Ü–¾ 0Ü–Õ0·D‹[SOgdingsRomanT©T©ì¡Ü–¾ 0Ü–Õ†@·DArialngsRomanT©T©ì¡Ü–¾ 0Ü–Õ"P·DSymbolgsRomanT©T©ì¡Ü–¾ 0Ü–Õ`·DMurray BoldmanT©T©ì¡Ü–¾ 0Ü–ÕhB¤ €Aÿÿ¥.«ÿ@  @@``€€©  @£nÿý?" dd@ÿÿïÿÿÿÿÿÿ  @@``€€ 8 ð0 ð�(@á4$$;   LDH'""/"/"/(*)667    !$%&-'()*+,-./01234 5 69:;<#=(Oð°ð$ÿð$ÿrð$ÝâÝß¿ß�Xoñçò¹˜ÿifrð$§Îg\ÓOðy �´­÷Ek‘ÿiiã ð´…‡€�ƒ†A¿ÀÁÂÄÅAË›1ÍÎÐÑÒÓÔÕ×ÿ¨)¨)?¿ñÌ@ñÌÿÿÿÿ÷ð8ó^€ó_€Ðúgþý42d2d®ô–¾ 0Æÿÿÿæpûppû@ ÿ <ý4BdBd —Ãl 0T©=ÂúÊš;­”ÇÊš;<ý4!d!d —l 0 —<ý4dddd —l 0 —ˆ˜Š0º___PPT10‹ ÀÀŠXº___PPT9‹:øÒùÊnðÀÖu†=!B¾öWÈøk€@~ÿ‰PNG  IHDRF¸}Ù PLTEÀÀÀ™™Ì3™£¹¸:tRNS@æØf cmPPJCmp0712Om·¥9IDATÓc``bŽ ¡¨$Ú<˜¤&…²–40(®Z©Àжj•„Ë‚ÕAt€õMæ† ù„iþIEND®B`‚/È 0Ò®D¯M¬0€ÿÿ€ÿÿ€ÿÿ¯Z¬€ÿÿ¯[¬ €ÿÿ€ÿÿ¯4¬ €ÿÿ€ÿÿ¯5¬€ÿÿ¯6¬>€ÿÿ€ÿÿ€ÿÿ¯7¬@€ÿÿ€ÿÿ€ÿÿ€ÿÿ¯9¬L€ÿÿ€ÿÿ€ÿÿ¯:¬€ÿÿ¯;¬€ÿÿ¯<¬€ÿÿ¯=¬ €ÿÿ€ÿÿ¯>¬ €ÿÿ€ÿÿ¯?¬€ÿÿ¯@¬.€ÿÿ€ÿÿ¯A¬<€ÿÿ€ÿÿ¯B¬€ÿÿ¯c¬@€ÿÿ€ÿÿ€ÿÿ€ÿÿ?ÙZÚ+ ºF\course\cpeg323-05F\Topic2d-323.pptOÙ Ú=ðkó«1Ÿ¨>Topic2d High-Level languages and System Software (Toolchain)¡:?$c$7$ª. , Ÿ¨8Introduction to Computer Systems Engineering (CPEG 323)¡2-2 9óÇMŸ¨ Reading List¡ (Ÿ¨4Slides: Topic2d Operating System and Compiler Books¡<5’ "  c'ª  'óÈNŸ¨ Tool Chain¡  óÉOŸª Ÿª óÊPŸ¨ Tool Chain¡  Ÿ¨XTwo good examples SimpleScalar www.simplescalar.com GNUPro www.intel.com (Search GNUPro)¡f   ª`  òó� 0ß;HóËQŸ¨ Tool Chain¡  Ÿ šBasic Set: " Compilers: C, C++, Fortran, and etc. " Binary utilities: assembler, linker, objdump, ar, nm " Debugger " Simulator (functional / cycle-accurate) " Others: performance monitor (VTune of Intel)¡® à b% b 5b b(  $b$.((ª>YZ óÌRŸ¨ Tool Chain¡  Ÿª óÍSŸ¨Tool Chain - Preprocessor¡Ÿ¨sFunctionality Header files Definitions Conditional compilation Pragma(Preprocessor Directives ) Delete the comments¡&ffª?"óÎTŸ¨Tool Chain - CompilerŸ¨fTransform a program from high level language to assembly language (or machine language) Optimizations ¡fgóÔZŸ¨Parameter Passing¡(Ÿ¨‡Caller save. The calling procedure (caller) is responsible for saving and restoring any registers that must be preserved across the call. The called procedure (callee) can then modify any register without constraint. Callee save. The callee is responsible for saving and restoring any registers that it might use. The caller uses registers without worrying about restoring them after a call.¡^Ù’ " ¯’ " n ÌþÎ Ìþ¤ª> 3 ˜óÕ[Ÿ¨Saving Registers¡(P(Ÿ¨If you call a function, whatever you have in $s0 to $s7 is guaranteed to be there when the function gets back to you But registers $t0 - $t9 are fair game to be reused by the function What are the alternatives? - Save nothing? - Save everything? Why caller/callee save ? ¡®u’ " ’ " (C’ " ’ " (’ " #“ " ’ " º#Ìþª óÖ\Ÿ¨Why caller save / callee save?ªŸ ÈIf all caller save ? Even callee doesn t kill any of the saved registers  waste of cycles and memory resource If all callee save ? Callee has to save all the register (which will be used by callee), even caller doesn t use them¡NZaZa ªPV5 ó×]Ÿ¨ Caller save¡  Ÿª óØ^Ÿ¨ Callee Save¡  ªŸª óÙ_Ÿ¨Caller Save / Callee SaveªŸ¨‡When to use caller save register ? TEMPORARY VARIABLE Also called Scratch Register When to use callee save register ? GLOBAL VARIABLE ¡Z#1##1# ª`"óÏUŸ¨Tool Chain - AssemblerŸ¨2Transform assembly code into binary (machine code)óÐVŸ¨Tool Chain - LinkerŸ xLinking  resolve symbols Relocation  assign memory addressóÑWŸ¨Tool Chain - loaderŸ¨.Cannot see by user Done by Shell and OS kernelóÒXŸ (Tool Chain  LibraryŸ¨ Libc/Libm ¡  ª óÓYŸ¨ Tool Chain¡  Ÿ¨_Objdump See the memory layout and sections Symbol table Disassembly code Relocation information¡&XXªYó­3ó®4Ÿ¨Compiling/Assembling a Program¡P(Ÿ žCode converted from high-level to machine language (binary) Each source file converted to a separate  object file in Unix, object files have extension .o This is not executable (yet)! Intended to be combined with other modules, not stand-alone May not have everything we need (e.g., a main () function) Functions not assigned specific locations in memory Each function given a  relocation table - This table tells exactly which addresses need to be resolved¡Ì<’ " ’ " 7’ " ½’ -’ -4’ " ’ " )’ " @“ " =7½Ÿó¯5Ÿ¨Relocation Table¡P(Ÿ öSuppose function f() in module a.c calls g() in b.c a.c should declare g with extern (directly or in .h file) Relocation table in a.o says something like:  the jal at the 52nd instruction in f calls g, but I don t know where g is. Relocation table in b.o says something like:  I have a function g, which starts at location 628 in my file. g unresolved even if local (why?) ¡ž4“ " “ " :’ " ’ " z’ " ’ " m’ " ’ " #’ " ÌþÌþÌþf ÌþÌþÌþGÌþ-Ìþ"ª¢×ó°6Ÿ¨Linking a program¡(Ÿ `Linker combines one or more object files into a proper executable Linker determines which functions needed, discards the rest All needed functions put one after the other in text segment Linker resolves all labels; for instance Function f() in a.o calls g() in b.o Linker knows where it put g(), so it fixes the jal in f() Linker includes extra code: Initialization code before call to main()  Cleanup code after main() returns¡B’ " n’ " <’ " n’ " =’ " n’ " )’ " n_’ -n’ -’ " nN’ -n¾)_N  ª;sóÀDŸ¨Loading¡(Ÿ¨æ A program that links without an error can be run. Before being run, the program resides in a file on secondary storage, such as a disk. On Unix system, the operating system kernel brings a program into memory and starts running. ¡ççó±7Ÿ¨ Libraries¡ (Ÿ¨äLibraries contain functions intended to be shared & reused, e.g., C library: printf(), malloc(), strcmp(), sin(), cos() STL (Standard Template Library) in C++ Big software projects may make their own libraries Static libraries (* .a in Unix) made part of the executable by linker Dynamic libraries (* .so in Unix, * .dll in Windows) combined at runtime Executable still has relocation table of unresolved function calls Loader does the final resolution when you execute the program ¡þB’ " x�’ -x’ -F’ " x’ " I’ " x�’ -x’ -xB�H,£  �    ªbM Ê£óÁGóÂHóÃIóÄJóÚaŸ¨Debugger¡ `ª Ÿ¨¢Instruction level debugger Source level debugger Major techniques Ptrace (POSIX API. on Linux/Unix system) Embedded or raw machine Software trap Single step mode¡FBBB`B``ª.B  Z ó³9Ÿ¨Debugger¡& (Ÿ Ø Source-level debugger lets you step through your source code Requires extra information attached to executable Location and type of every function and variable First instruction address corresponding to each line of source Usually requires extra switches to compiler and linker, e.g., -g Two popular graphical debuggers are ddd and xxgdb (on ECE/CIS machines)¡ä?’ " ’ " 2’ " p’ -’ -A’ " ’ " H’ " 32p  Šª,Ió¾EŸ¨Run a Executable File (OS View)¡ (Ÿ J The operating system performs the following steps: 1. Reads the executable file s header to determine the size of the text and data segments. 2.  Establish a new address space (e.g. via the creation of a new page table) for the program. This address space is large enough to hold the text and data segments, along with a stack segment 3. Copies instructions and data from the executable file into the new address space¡f4q3qó¿FŸª Ÿ †4. Copies arguments passed to the program onto the stack. 5. Initializes the machine registers. In general, most registers are cleared but the stack pointer must be assigned the address of the first free stack location 6. Jumps to a start-up routine that copies the program s arguments from the stack to registers and calls the program s main routine. If the main routine returns, the start-up routine terminates the program with the exit system call.¡ÄÄó¬2Ÿ¨$Typical Layout of an Executable File¡%P%$Ÿª ó´:Ÿ¨The Role of the OS Kernel¡&(Ÿ HThe OS  kernel performs the following essential functions: Manages resources (memory, disks, I/O)  mostly via  drivers Switches between users (in a multi-user system such as copland) Provides convenient functions for applications to access resources Protects users from one another Provides essential  glue , e.g., support for loaders For this to work efficiently, the CPU must have some support for the kernel.¡<“ " x’ "  >’ " x’ "  @’ " x’ " C’ " x’ "  ’ " x’ " 5’ " x’ " M’ " x!„ƒª³ëóµ;Ÿ¨#Processor Support for the OS kernel¡$P$(Ÿ ˜Most processors have at least 2 distinct levels or  modes :  Supervisor (or  privileged or  kernel ) mode  User level (including  root or  administrator ) Lower levels can t do some things, e.g., access the disk drive CPU boots in kernel mode; drops to user mode to run user code Early micros (such as 8086) lacked such modes¡ª<’ " xc’ -x’ -?’ " x’ " >’ " x’ " .’ " x<ƒó¶<Ÿ¨Traps¡P(Ÿ ¦ So once we re in user mode, how do we get back to the privileged mode? Through  traps  exceptional or unusual conditions requiring intervention by the kernel: Hardware error (divide by 0 or access to illegal memory address) Hardware  interrupt (Ethernet card got data; mouse clicked) Clock signal telling multi-user OS to switch to another user  Software trap when user code requests something from kernel PC reaches value stored in special  breakpoint register¡0¢“ " x2’ " xÔó·=Ÿ¨ Trap Handlers¡(P (Ÿ " When a trap occurs, the CPU: Sets bits in special  status reg., indicating the cause of the trap Switches to privileged mode Jumps to a  trap handler (installed at boot time) at fixed location Handler reads status bits and takes appropriate action Return address saved, like jal instruction * When kernel is done, a special instruction return to the user code, dropping into user mode automatically¡Š“ " x¦’ " xb’ -xl“ -x¦blªyó¸>Ÿ¨Software Traps¡(P(Ÿ  To do just about anything on the system involving shared resources (such as write to a file), the user code must ask the kernel to do it! User code gets access to the kernel through  trap instructions  System calls provided for operations such as writing files A function call to a system call converted to a software trap Args passed in the usual way (e.g., $a0-$a3 in MIPS) In MIPS, use the  syscall instruction No operands in assemble-language instruction Specify which system call you want by putting a value in $v0 ¡~‹“ " x’ " xj’ -x’ -x‹jª,FCyó¹?Ÿ¨ System Calls¡( P (Ÿ ŠPOSIX standard defines system calls and their numbers For instance, call no. 4 is the write() function: #include <unistd.h> ssize_t write(int fildes, cost void *buf, size_t nbyte); Every open file is identified by a unique  file descriptor (int) This function writes nbyte bytes, starting at address buf, to the file¡xh’ " x’ " R“ " x’ " C“ " xG’ " xFªªt  Bóº@Ÿ¨Example: Call to printf()¡(P(ªŸ DUser code a.c calls printf ( Answer is %d\n , i); printf() declared as an extern function in stdio.h Compiler generates a.o with printf unresolved in relocation table Data segment of a.o has string  Answer is %dl_ (NUL at end) 14 bytes, with local label (e.g., L314) in relocation table Reference resolved when linked with libc (C library): By linker if statically (e.g., -Bstatic in Sun CC) B y loader if dynamically¡ää’ " x<’ -x6’ " xM’ -xGK <6Mª†%0Š.&ó»AŸ¨Calling printf()¡(P(ªŸ 4Program sets args to printf (L314 and i) does jal printf printf (still in user mode) does the following: Creates new stack frame (as any non-leaf function should) Processes args; makes new string  Answer is 42l in heap Creates args to write() function: Constant 1 in $a0 (file descriptor 1 is stdout) Address of heap string in $a1 Constant 13 in $a2 - Puts constant 4 in $v0 and does a syscall instruction ¡Új’ " x•’ -xa’ " x9“ -x’ -x’ " xjI*a;  ªª n3>Xó¼BŸ¨Processing the Trap¡(P(Ÿ¨ŽThe CPU executes the syscall (trap) instruction: Switches to privileged mode Sets bits in status regs indicating trap caused by syscall Jumps to trap handler Trap handler checks status bits; sees trap came from syscall Checks call # in $v0; fetches 4th entry in function table and jumps System call transfers 13 bytes to low-level driver - Driver writes them to graphics display (if normal stdout)¡†1’ " xm’ -x´’ " x=“ " x1m\ “ªbEL­óÛbŸ¨Toolchain Review¡(P(ª Ÿ¨�Caller save register. The registers that the calling procedure (caller) is responsible for saving and restoring across the call. The called procedure (callee) can then modify the registers without constraint. Callee save register. The registers that the callee is responsible for saving and restoring if it might use. The caller uses the registers without worrying about restoring them after a call.¡6�½«ª>—4'ŒóÜcŸ¨Program Translates¡P(Ÿ Pa.c Int I; & Printf( Answer is %d , i) & ¡l“ " x%“ " Zc c ª6óÝdŸ¨Program Translates(cont.)¡(P(ªŸª óÞeŸ¨Program Translates (Cont.)¡(P(Ÿª Pÿÿÿêø¸,ï  0`ð @EŒÿÿÿÿÿÌ��³²²²o‰÷OV­`ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛý`ð ÿÿÿ²²²MMM–––êêêwwwÀÀÀ`ð ÿÿÿ33²²²f3ÝÆ§ÙÁgŠzfÀ®ž`ð 3fÿÿÿÌÿÌf™™™™ÌEŠ`ð JHÿÿÿ3ÌÌf™™™Ì™ff`ð 33ÿÿÿÿÿÌÌ™Ìf€€RP`ð ÿÿÿ=bÈÑÚf™šÀê€ÃÈ�«Ë¶ËÖ£>ÿý?" dd@ÿÿïÿÿÿÿÿÿ,£’ÿý?wndØ@ÿÿïÿÿÿÿÿÿ àn<Ô àw_Ð@ànAð``<€ £nÿý?" dd@ÿÿïÿÿÿÿÿÿ   @@``€€P£P   @ ` €`£ p£>€£> ä'ðÜ'ðCCPð\'ð( ð ðPð¢!ðT ð€à ðP ðˆ"ñ¿ð€àðŒðb ð€à ðP# ð ˆ"ñ¿ð€àð˜ ð\ ðÀ€€ ðP ðˆ"ñ¿ðÀ€€ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ð†B ð P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ð P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ð P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ð P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ð†B ð P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð € ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ €À ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ €€ ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@ €@ ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð € ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ €À ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ €€ ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ðzð\ ðÀÀà ðP ðˆ"ñ¿ðÀÀàð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ðP à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð!P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð"P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð#P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð$P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð%P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð&P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð'P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð àð†B ð(P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ À àð†B ð)P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ € àð†B ð*P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@ @ àð†B ð+P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð àð†B ð,P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ À àð†B ð-P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ € àð†B ð.P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð/P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð0P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð1P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð2P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð3P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð4P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð5P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð6P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð7P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð8P à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð² ð9P # ðt…‡¿?€�ƒ†A‡Á¿Àÿ?¿ÿ60%"ñ¿†ð@€`ðtB ð:P “ ð6…‡D¿Àÿ"ñ¿ðÀÀÐðtðb ð`” Ð ð;P# ð ˆ"ñ¿ð|i4 ðtB ðPB  ðÌ…‡B»¨CÀ¨EÁNGG¹¤ÿH„ʲI[TQÁ�ƒ¿Àÿ ûÿÿÿ»¨À¨zR(Vûÿÿÿ»¨À¨zR(V[T`TzR(V[T`T"ñ¿ðٔȃðà ð?P “ ð6€L‡�ƒ¿Àÿ "ñ¿ðÀ€ �ðà  ðTŸ¨ Click to edit Master title style¢!ª !ðî ð@P “ ðú€O�ƒ¿Àÿ �ÃÄ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ðÐ ðAP “ ð6€ÌU‡�ƒ¿Àÿ "ñ¿ð`°`€ðà  ðDŸ *¡  øðê ðBP “ ð6€øZ‡�ƒ¿Àÿ "ñ¿ð`` €ðà   ð^Ÿ *¡  c úª  ðÒ ðCP “ ð6€l_‡�ƒ¿Àÿ "ñ¿ð` Ѐðà  ðFŸ *¡  ØðH ðP ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ðð>Pð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆÔŠ̺___PPT9‹®­2€p­2€€­2€ ºBlueprintî�*ï € 0 M*ðE*0ðGGTðµ)ð( ð ðTðB$ðT ð€à ðT ðˆ"ñ¿ð€àð6ðb ð€à ðT# ð ˆ"ñ¿ð€àð’ ðT ã ðT…‡¿?�¿Àÿ?¿ÿ"ñ¿†ð@€`ð®ð\ ð€à ðT ðˆ"ñ¿ð€àð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ð T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ð†B ð T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ð T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ð T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ð T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð € ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ €À ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ €€ ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@ €@ ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð € ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ €À ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ €€ ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@€@ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ€Àð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€€ð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ðT à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð!T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð"T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð#T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð$T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð%T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð&T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð'T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð àð†B ð(T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ À àð†B ð)T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ € àð†B ð*T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@ @ àð†B ð+T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð àð†B ð,T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀ À àð†B ð-T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€ € àð†B ð.T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð/T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð0T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð1T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð2T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð3T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð4T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàð†B ð5T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð€€àð†B ð6T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ð@@àð†B ð7T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðàð†B ð8T à ðH…‡D¿ÀÂÄÅAÿ "ñ¿ðÀÀàðtB ð9T “ ð6…‡D¿Àÿ"ñ¿ðÀÀÐð$ð\ ð/c3  ð:T ðˆ"ñ¿ð/c3 ð¨B ð;T “ ð6…‡D¿Àÿ"ñ¿ðú/ú3 ð,$ñD  0ðtB ðTB  ðÒZ…‡B»¨CÀ¨EÁNGG¹¤ÿH„ʲI[TQÁ�ƒ¿Àÿ ûÿÿÿ»¨À¨zR(Vûÿÿÿ»¨À¨zR(V[T`TzR(V[T`T"ñ¿ð©]Fùðtð\ ðÈ ¨´ ð?T ðˆ"ñ¿ðÈ ¨´ðtB ð@T‚ “ ð6…‡D¿Àÿ"ñ¿ðÈr ¨r ðtB ðATB “ ð6…‡D¿Àÿ"ñ¿ð4 4´ð2 ðBT  ðÒZ…‡B»¨CÀ¨EÁNGG¹¤ÿH„ʲI[TQÁ�ƒ¿Àÿ ûÿÿÿ»¨À¨zR(Vûÿÿÿ»¨À¨zR(V[T`TzR(V[T`T"ñ¿ðè …¯ ðà ðCT “ ð6€¤r‡�ƒ¿Àÿ "ñ¿ðPp� ðà  ðTŸ¨ Click to edit Master title style¢!ª !ð§ ðDT “ ðú€\Ft�ƒ¿Àÿ �ÃÄRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth level"ñ¿ð%p0u ðà  ðWŸ¨#Click to edit Master subtitle style¢$ª $ðÐ ðET “ ð6€Œ‘‡�ƒ¿Àÿ "ñ¿ð`°`€ðà t ðDŸ *¡  øðê ðFT “ ð6€(—‡�ƒ¿Àÿ "ñ¿ð`� €ðà   ð^Ÿ *¡  c úª  ðÒ ðGT “ ð6€�š‡�ƒ¿Àÿ "ñ¿ð` Ѐðà  ðFŸ *¡  ØðH ðT ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?/ð ð>TðBTð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýð;ñ€ 0 »ð³�ððKð( ð ðð  ð ã ðT€Œ‚]�~K‚ƒ~K„¿�ƒ¿Àÿ ?ðv$ðà  ] ðpŸ *¡ ùª ¦ñH$$HHmm‘‘ð ð ã ðT€“]�~K‚ƒ~K„¿�ƒ¿Àÿ ?ð 8$ðà ] ðrŸ *¡ øª ¦ñH$$HHmm‘‘ð ð ó ðZ€°–]�~K‚ƒ~K„‡¿�ƒ¿Àÿ ?ð´vØðà  ] ðpŸ *¡ úª ¦ñH$$HHmm‘‘ð ð ó ðZ€T¨]�~K‚ƒ~K„‡¿�ƒ¿Àÿ ?ð´ 8Øðà ] ðrŸ *¡ ت ¦ñH$$HHmm‘‘ðp ð ƒ ð0‡¿ÀË›1ÿ ?ð·æRG ðà ]ð; ð ã ðT€ ª]�âl‚r¶ƒâl„r¶¿�ƒ¿Àÿ ?ðÚ Lì"ðà ] 🟨SClick to edit Master notes styles Second Level Third Level Fourth Level Fifth Level¢"    ª TðH ð ƒ ð0�“’ßj”BÁ�¿ÿ? ?ð ÿÿÿ‘‘‘a�ý®ü(ÎÎΈ8Š0º___PPT10‹ë.þ�Ä03�ŠÉ( ¸ð° ð ðHð( ð ð ðú ð ã ðT€ÈÀ]�~K‚ƒ~K„¿�ƒ¿Àÿ ?ðv$ðà  ] ð^Ÿ *¡ ù¦ñH$$HHmm‘‘ðü ð ã ðT€˜Ä]�~K‚ƒ~K„¿�ƒ¿Àÿ ?ð 8$ðà ] ð`Ÿ *¡ ø¦ñH$$HHmm‘‘ð ð ó ðZ€ Î]�~K‚ƒ~K„‡¿�ƒ¿Àÿ ?ð´vØðà  ] ð^Ÿ *¡ ú¦ñH$$HHmm‘‘ð ð ó ðZ€\Ù]�~K‚ƒ~K„‡¿�ƒ¿Àÿ ?ð´ 8Øðà ] ð`Ÿ *¡ ئñH$$HHmm‘‘ðH ð ƒ ð0�“’ßj”BÁ�¿ÿ? ?ð ÿÿÿ‘‘‘a�ý®ü(ÎÎΈ8Š0º___PPT10‹ë.þ�Äй�Šî…ï€ 0 ¬ð¤ ðdð<ð( ð ðdð~ ðd s ð*€ì¤¿ÿCTˆð Àðà  ð žð~ ðd s ð*€$¦¿ÿDTˆðpP? ðà  ð žðH ðd ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ€€€Ì™33ÌÌÌÿ²²²ˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îï € 0 ¦ðž@ðÔð6ð( ð ðÔðx ðÔ c ð$€Ðžf¿ÿ?Pˆðð°ÐÀðà  f ð žð~ ðÔ s ð*€Üõf¿ÿ@Pˆðp€ðü ðà f ð žðH ðÔ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿÚÚÚÚÚÚ‘‘‘333gggˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‚ï € 0 ™ð‘PðØð)ð( ð ðØðx ðØ c ð$€Hõ¿ÿ?PˆðÀ€ �ðà   ð žðq ðØ “ ðú€”ö�ƒ¿Àÿ �ÃÄRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelð°0Ð ðGŸ¨·toolchain A collection of system softwares used to develop for a particular hardware target If you designed a new processor, what is the basic system software tool set you need? ¡H R[ R [ª$  �ðH ðØ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.‰Ã ð-Ì+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îžï € 0 µð­`ð$,ÜðEð( ð ðÜð¡ ðÜ “ ð6€ 8…‡�ƒ¿ÀÿðÛhI® ð;Ÿ¨ C program¡  ðR2 ðÜ s ð*…‡�ÝÝÝ¿Àÿð'Å 𤢠ðÜ £ ð<€Ü8…‡¿�ƒ¿Àÿð,¬@ ð8Ÿ¨Compiler¡ ð± ðÜ “ ð6€¸8…‡�ƒ¿Àÿð©nm ” ðKŸ¨Assembly language program¡ðR2 ðÜ s ð*…‡�ÝÝÝ¿Àÿð· 𥢠ðÜ £ ð<€8…‡¿�ƒ¿Àÿð,zV  ð9Ÿ¨ Assembler¡ ð· ðÜ “ ð6€h8…‡�ƒ¿Àÿð© Œ ðQŸ¨Object: Machine language module¡  ð ð Ü “ ð6€€8…‡�ƒ¿Àÿð»à ùŽ ð\Ÿ¨*Object: Library routine (machine language)¡++ðR2 ð Ü s ð*…‡�ÝÝÝ¿Àÿð $   𢢠ð Ü £ ð<€¼"8…‡¿�ƒ¿Àÿð& ù í  ð6Ÿ¨Linker¡ð¼ ð Ü “ ð6€8…‡�ƒ¿Àÿð¶ ƒ¹™  ðVŸ¨$Executable: Machine language program¡%%ðR2 ð Ü s ð*…‡�ÝÝÝ¿Àÿð ž 𢢠ðÜ £ ð<€X8…‡¿�ƒ¿Àÿð* É Õ  ð6Ÿ¨Loader¡ðž ðÜ “ ð6€P/8…‡�ƒ¿Àÿð« | ]Ž ð8Ÿ¨Memory¡ð^B ðÜ “ ð6…‡D¿ÀÑÿð¬bü5ð^B ðÜ “ ð6…‡D¿ÀÑÿð ž©ð^B ðÜ “ ð6…‡D¿ÀÑÿð¢˜2+ð^B ðÜ “ ð6…‡D¿ÀÑÿð"ª«ð^B ðÜ “ ð6…‡D¿ÀÑÿðšp # ð^B ðÜ@ “ ð6…‡D¿ÀÑÿ𪠺 3 ð^B ðÜ “ ð6…‡D¿ÀÑÿð* º ³ ð^B ðÜ “ ð6…‡D¿ÀÑÿ𢠠 : + ð^B ðÜ “ ð6…‡D¿ÀÑÿð" 8Ò« ðå¢ ðÜ ƒ ð0€ì48¿�ƒ¿ÀÿðÁ¤ÿá ð…Ÿ¨1A Typical Toolchain and its Translation Hierarchy¡22Ìþª ð|B ðÜ@ ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ðÌ<~ð|B ðÜ@ ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ð¦® Ølð|B ðÜ@ ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ð⦠’ ð|B ðÜ@ ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ð6 ð|B ðÜ ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ðÊ`°ð÷2 ðÜ # ðl€$;8…‡�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð2HŒú ð[Ÿ¨ Toolchain¡   ª ð|B ð Ü ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ðjب ð 2 ð!Ü ƒ ð0€|@8…‡�ÝÝÝ¿Àÿðô Ðnö  ð@Ÿ¨Debugger¡   ð¥2 ð*Ü ƒ ð0€E8…‡�ÝÝÝ¿ÀÿðW ƒ!¢  ðEŸ¨ Utility tools¡ ð|B ð+Ü@ ã ðT…D¿ÀÇ‚ËjJÎÑÿ¨)¨)?¿ðâÃÿ ð0 ð,Ü 3 ð…‡B…C£DEÁFÁ€�ƒ†A¿ÀÁÂÄË›1ÍÎÐÑÒÓÔÕ×ÿ¨)¨)?¿ðÿ.—dÈcþGE…£@­ ­ ¬€ðúÕZ�ðH ðÜ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië. ƒÃÐ/(²+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜pðàð0ð( ð ðàðx ðà c ð$€XJ8¿ÿ?PˆðÀ€ �ðà  8 ð žðx ðà c ð$€K8¿ÿ@Pˆð°0Ððà 8 ð žðH ðà ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.‚ƒÃPCöõ+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜€ðäð0ð( ð ðäðx ðä c ð$€,R8¿ÿ?PˆðÀ€ �ðà  8 ð žðx ðä c ð$€S8¿ÿ@Pˆð°0Ððà 8 ð žðH ðä ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.†ƒÃ¾³+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î-ï € 0 Dð<�ðèðÔð( ð ðèðx ðè c ð$€pa8¿ÿ?PˆðÀ€ �ðà  8 ð žð¢ ðè  ðf€¼b8¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð€ˆø ð†Ÿ ¸gcc  v  O0  o foo foo.c (old Step 0: cpp) foo.i Step 1: cc1 - compiler foo.s Step 2: as - assembler foo.o Step 3: ld - linker foo¡Ý 2ݪ� 020ðH ðè ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.�ƒÃ�çÀ +Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜ ðìð0ð( ð ðìðx ðì c ð$€ p8¿ÿ?PˆðÀ€ �ðà  8 ð žðx ðì c ð$€Hq8¿ÿ@Pˆð°0Ððà 8 ð žðH ðì ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.¡ƒÃ°¤fú+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜°ððð0ð( ð ðððx ðð c ð$€àv8¿ÿ?PˆðÀ€ �ðà  8 ð žðx ðð c ð$€¸w8¿ÿ@Pˆð°0Ððà 8 ð žðH ðð ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.¢ƒÃ�—m9+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îï € 0 Bð:ððÒð( ð ððÆ ð 3 ðr€\8�«g‚Ö³ƒ«g„Ö³…†‡ˆ‰Š‹¿¿ÿ ??Pˆð°ÐOðà  8 ð žðÌ ð C ðx€ €8�«g‚Ö³ƒ«g„Ö³…†‡ˆ‰Š‹¿¿ÿ ?@Pˆð° 0Ððà 8 ð žðH ð ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿÚÚÚÚÚÚ‘‘‘333gggˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î«ï € 0 ÒðÊ ð ðbð( ð ð ðx ð  c ð$€lì8¿ÿ?PˆðÀ€ �ðà  8 ð žðª ð  ƒ ð0€Xæ8¿ÀÌÄÿ @PˆS"ñÙÿÿÿÿÚÿÿÿÿÛ ÜÁáÿÿÿÿðÑ�n¼ ðà 8 ð žðH ð  ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜0ðð0ð( ð ððx ð c ð$€€ø8¿ÿ?PˆðÀ€ �ðà  8 ð žðx ð c ð$€Xù8¿ÿ@Pˆð°0Ððà 8 ð žðH ð ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.‰Ã “WM+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îÛï € 0 òðê@ð ð‚ð( ð ððˆ ð  ð`…‡�™ç‡¿À™ç‡Ë›1ÒÓÔÕÿ¨)¨)?¿ðh ÈÀ ðŽ ð  ðf…‡�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð°ˆ À ðx ð c ð$€Ü[¿ÿ?PˆðÀ€ �ðà  [ ð žð­¢ ð  ðf€x–8¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð0� €  ðŸ¨eAdd $10, $11,$12 Save $10, $12, $13 Jal B Restore $10, $12, $13 Sub $11, $2, $12 Mul $12, $10, $13 ¡bf 2ÌþÌþ"ª,%+ðî¢ ð  ðf€è[¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð ð   ðXŸ¨ Add $2, $4, $5 Br $31¡& 2ðÖ¢ ð  ðf€T[¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðX x ð@Ÿ¨ Function A¡  2 ðÖ¢ ð  ðf€P[¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðP 0p ð@Ÿ¨ Function B¡  2 ð=¢ ð  3 ðr€[…‡¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðE ÞPK 𛟨7How to save ? - save to stack sw $10, 20(sp)¡&8 (Ìþª(ðH ð ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.‰Ã ‰ÿÑ+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î ï € 0 &ðPð ð¶ð( ð ððx ð c ð$€¤%[¿ÿ?PˆðÀ€ �ðà  [ ð žðˆ ð  ð`…‡�™ç‡¿À™ç‡Ë›1ÒÓÔÕÿ¨)¨)?¿ðp ÈØðŽ ð  ðf…‡�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð°ˆ À ðe¢ ð  ðf€t'[¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð0� x  ðÏŸ¨;Add $10, $11,$12 Jal B Sub $11, $2, $12 Mul $12, $10, $13 ¡D< 2Ìþ"ª,ð¢ ð  ðf€ñ+Bñ#style.visibility<ñû*#6%ñ(ñDñ'ñ Ð=ñ+ñá4ñ 8?ñdCñBñ0-#ppt_w/2BñCñèBñ#ppt_xBñ*ñY3ñ>ñBñ ppt_x<ñû*#6Dñ'ñ Ð=ñ+ñÙ4ñ 8?ñ\CñBñ#ppt_yBñCñèBñ#ppt_yBñ*ñY3ñ>ñBñ ppt_y<ñû*#6Dñn'ñ =ñ%ñ(ñÿÿÿÿDñ'ñ =ñ%ñ(ñDñ¾'ñ =ñ4@Bñ�Bñ Bñ°Bñ%ñ(ñDñø'ñ =ñ1ñ :ñBñvisible*ño3ñ>ñ+Bñ#style.visibility<ñû*6T%ñ(ñDñ'ñ Ð=ñ+ñá4ñ 8?ñdCñBñ0-#ppt_w/2BñCñèBñ#ppt_xBñ*ñY3ñ>ñBñ ppt_x<ñû*6TDñ'ñ Ð=ñ+ñÙ4ñ 8?ñ\CñBñ#ppt_yBñCñèBñ#ppt_yBñ*ñY3ñ>ñBñ ppt_y<ñû*6TDñn'ñ =ñ%ñ(ñÿÿÿÿDñ'ñ =ñ%ñ(ñDñ¾'ñ =ñ4@Bñ�Bñ Bñ°Bñ%ñ(ñDñø'ñ =ñ1ñ :ñBñvisible*ño3ñ>ñ+Bñ#style.visibility<ñû*w‡%ñ(ñDñ'ñ Ð=ñ+ñá4ñ 8?ñdCñBñ0-#ppt_w/2BñCñèBñ#ppt_xBñ*ñY3ñ>ñBñ ppt_x<ñû*w‡Dñ'ñ Ð=ñ+ñÙ4ñ 8?ñ\CñBñ#ppt_yBñCñèBñ#ppt_yBñ*ñY3ñ>ñBñ ppt_y<ñû*w‡+î‰ï € 0  ð˜Àðôð0ð( ð ðôðx ðô c ð$€ T[¿ÿ?PˆðÀ€ �ðà  [ ð žðx ðô c ð$€ÈT[¿ÿ@Pˆð°0Ððà [ ð žðH ðô ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.¢ƒÃpÜ>\+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜Ððøð0ð( ð ðøðx ðø c ð$€üZ[¿ÿ?PˆðÀ€ �ðà  [ ð žðx ðø c ð$€À[[¿ÿ@Pˆð°0Ððà [ ð žðH ðø ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.¢ƒÃ�²im+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜àðüð0ð( ð ðüðx ðü c ð$€ñ+Bñ#style.visibility<ñû*Àÿÿÿÿÿÿÿÿ%ñ(ñDñ»'ñ è=ñ-ñƒ6ñBñ'blinds(horizontal)*ñ<3ñ<ñû*ÀÿÿÿÿÿÿÿÿDñ{'ñ =ñ%ñ(ñÿÿÿÿDñ#'ñ =ñ%ñ(ñDñË'ñ =ñA@Bñ�Bñ Bñ°Bñ0Bñ%ñ(ñDñø'ñ =ñ1ñ :ñBñvisible*ño3ñ>ñ+Bñ#style.visibility<ñû* Àÿÿÿÿÿÿÿÿ%ñ(ñDñ'ñ è=ñ+ñá4ñ 8?ñdCñBñ1+#ppt_w/2BñCñèBñ#ppt_xBñ*ñY3ñ>ñBñ ppt_x<ñû* ÀÿÿÿÿÿÿÿÿDñ'ñ è=ñ+ñÙ4ñ 8?ñ\CñBñ#ppt_yBñCñèBñ#ppt_yBñ*ñY3ñ>ñBñ ppt_y<ñû* Àÿÿÿÿÿÿÿÿ+8+0+ À0 +î ï€ 0 ä ðÜ ððÄðt ð( ð ðÄðˆ ðÄ “ ð6€¨2\‡�ƒ¿Àÿ ðÀ€ � ð"Ÿ¨Static Libraryð ðÄ # ðl€ˆ4\…‡�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðè 0 ðkŸ¨Call printf ¡ ª ðÿ ðÄ  ðf€4:\…‡�™ç‡¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð8 xH ðiŸ¨ Call printf¡ ª ðߢ ðÄ 3 ðr€ð8\…‡¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð}&� ð=Ÿ¨ Program A¡   ðÓ¢ ðÄ  ðf€ÌB\¿�ƒ¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðeV C… ð=Ÿ¨ Program B¡   ð0 ð Ä  ðf€àE\…‡�.Mè¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð0 ð ð,$ñD  0 ðfŸ¨Printf: ¡(  Ìþªð0 ð Ä  ðf€”J\…‡�.Mè¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð(@ p ð,$ñD  0 ðfŸ¨Printf: ¡(  ÌþªðˆB ð Ä  ð`…D¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðà ˜ àðˆB ð Ä  ð`…D¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðè� � 0 ðŽB ð Ä@  ðf…D¿ÀË›1ÑÒÓÔÕÿ¨)¨)?¿ð( ( ˆ 0 ðˆB ðÄ  ð`…D¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ðp H8p ðˆB ðÄ€  ð`…D¿ÀË›1ÒÓÔÕÿ¨)¨)?¿ð(@@p ðŽB ðÄ@  ðf…D¿ÀË›1ÑÒÓÔÕÿ¨)¨)?¿ð �@(ðH ðÄ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆÐ ŠÈ º___PPT10‹¨ ë.úœÄð)Z+kå(ÆDñ 'ñ R\ÿÿÿÿ=ñ @Bñ DñÇ 'ñ •ÿÿÿÿ=ñ @BñAñ?%ñ,(ñ <ñ +O%ñ,(ñ <ñ +Dñ{'ñ =ñ%ñ(ñÿÿÿÿDñ#'ñ =ñ%ñ(ñDñË'ñ =ñA@Bñ�Bñ Bñ°Bñ0Bñ%ñ(ñDñø'ñ =ñ1ñ :ñBñvisible*ño3ñ>ñ+Bñ#style.visibility<ñû* Äÿÿÿÿÿÿÿÿ%ñ(ñDñ'ñ è=ñ+ñá4ñ 8?ñdCñBñ1+#ppt_w/2BñCñèBñ#ppt_xBñ*ñY3ñ>ñBñ ppt_x<ñû* ÄÿÿÿÿÿÿÿÿDñ'ñ è=ñ+ñÙ4ñ 8?ñ\CñBñ#ppt_yBñCñèBñ#ppt_yBñ*ñY3ñ>ñBñ ppt_y<ñû* ÄÿÿÿÿÿÿÿÿDñ{'ñ =ñ%ñ(ñÿÿÿÿDñ#'ñ =ñ%ñ(ñDñË'ñ =ñA@Bñ�Bñ Bñ°Bñ0Bñ%ñ(ñDñø'ñ =ñ1ñ :ñBñvisible*ño3ñ>ñ+Bñ#style.visibility<ñû* Äÿÿÿÿÿÿÿÿ%ñ(ñDñ'ñ è=ñ+ñá4ñ 8?ñdCñBñ1+#ppt_w/2BñCñèBñ#ppt_xBñ*ñY3ñ>ñBñ ppt_x<ñû* ÄÿÿÿÿÿÿÿÿDñ'ñ è=ñ+ñÙ4ñ 8?ñ\CñBñ#ppt_yBñCñèBñ#ppt_yBñ*ñY3ñ>ñBñ ppt_y<ñû* Äÿÿÿÿÿÿÿÿ+p+0+ Ä0 ++0+ Ä0 +îXï€ 0 oðgðÈðÿð( ð ðÈð  ðÈ “ ð6€TY\‡�ƒ¿Àÿ ðÀ€ � ð:Ÿ¨ Comparison¡  ð ðÈ “ ðú€P\\�ƒ¿Àÿ �ÃÄRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelð°0Ð ðõŸ¨ƒDynamic Less memory space Less disk space Most of the case: Slower Static More memory size More disk size Most of the case: faster¡VZ<ZZ9Z<9 ðH ðÈ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.úœÄ�ǯm+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î‰ï € 0  ð˜�ð(ð0ð( ð ð(ðx ð( c ð$€Ôf\¿ÿ?PˆðÀ€ �ðà  \ ð žðx ð( c ð$€¬g\¿ÿ@Pˆð°0Ððà \ ð žðH ð( ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ‘Љº___PPT10‹ië.7¦Ä°sç<+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î[ï € 0 ‚ðzàð„ðð( ð ð„ðx ð„ c ð$€8m\¿ÿ?PˆðÀ€ �ðà  \ ð žðZ ð„ ³ ð€üm\�ƒ¿Àÿ @P�ÃĈRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelðe-©šðà \ ð žðH ð„ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î-ï € 0 TðL@ð´ðäð( ð ð´ðÆ ð´ 3 ðr€¸�\�«g‚Ö³ƒ«g„Ö³…†‡ˆ‰Š‹¿¿ÿ ?@Pˆð^¯Ïµðà \ ð žðÞ ð´ s ðŠ€ø…\�«g‚Ö³ƒ«g„Ö³…†‡ˆ‰Š‹¿�ƒ¿Àÿ ??Pˆð¦ÝOðà  \ ð žðH ð´ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿÚÚÚÚÚÚ‘‘‘333gggˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îï € 0 >ð6Pð¸ðÎð( ð ð¸ðÆ ð¸ 3 ðr€\–\�«g‚Ö³ƒ«g„Ö³…†‡ˆ‰Š‹¿¿ÿ ?@Pˆð6œ¼yðà \ ð žðÈ ð¸ ã ðT€ ˜\�«g‚Ö³ƒ«g„Ö³…¿�ƒ¿Àÿ?ðõ> ðDŸ (cont d)¡ ðH 𸠃 ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿÚÚÚÚÚÚ‘‘‘333gggˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î ï € 0 4ð,`ðhðÄð( ð ðhðx ðh c ð$€ü¦\¿ÿ?Pˆð}àÖMðà  \ ð žððF ð~öŽ ðh ðˆð~² ðPðN ðX …`Ì  ðh ðˆð öŽðZ ðh s ð*…‡�ÝÝÝ¿ÀÿðX …`Ì 悁ðh £ ð<€�©\…‡¿�ƒ¿ÀÿðŒ ¤+[ ð;Ÿ¨stack¡ ð¶¢ ðh £ ð<€°­\…‡¿�ƒ¿Àÿð›  Ñ  ðBŸ¨ Dynamic date¡   ðZB ðh‚ s ð*…D¿ÀÿðX è `è ð²¢ ð h £ ð<€±\…‡¿�ƒ¿Àÿð í §¤  ð>Ÿ¨Reserved¡   ðZB ð h‚ s ð*…D¿ÀÿðX ó `ó 𮢠ð h £ ð<€è´\…‡¿�ƒ¿Àÿð¥ ü ³  ð:Ÿ¨Text¡ ðZB ð h‚ s ð*…D¿ÀÿðX ÷ `÷ ðµ¢ ð h £ ð<€t¸\…‡¿�ƒ¿Àÿðô Å·  ðAŸ¨ Static data¡   ð`B ðh ƒ ð0…D¿ÀÑÿðYŠY™ð`B ðh ƒ ð0…D¿ÀÐÿðY4 YC ðࢠðh £ ð<€½\…‡¿�ƒ¿Àÿð]³ Ï ðlŸ¨$sp 7fff ffff¡ ªð­¢ ðh £ ð<€8Á\…‡¿�ƒ¿ÀÿðÖ †þ F ð9Ÿ¨hex¡ ð`B ðh ƒ ð0…D¿ÀÑÿðQnônðࢠðh £ ð<€(¿\…‡¿�ƒ¿Àÿð~L ³  ðlŸ¨$gp 1000 8000¡ ªð­¢ ðh £ ð<€Ê\…‡¿�ƒ¿ÀÿðÖ — þ W  ð9Ÿ¨hex¡ ð`B ðh ƒ ð0…D¿ÀÑÿð‰« ,« ð´¢ ðh £ ð<€ÌÈ\…‡¿�ƒ¿Àÿð M ¯  ð@Ÿ¨ 1000 8000¡   ð­¢ ðh £ ð<€0Ò\…‡¿�ƒ¿ÀÿðÖ a þ !  ð9Ÿ¨hex¡ ð½¢ ðh £ ð<€ Ö\…‡¿�ƒ¿ÀÿðÂ( ³ è  ðIŸ¨pc 0040 0000¡ ð­¢ ðh £ ð<€¼Ô\…‡¿�ƒ¿ÀÿðÖ R þ  ð9Ÿ¨hex¡ ð`B ðh ƒ ð0…D¿ÀÑÿ𜇠?‡ ð¢ ðh ƒ ð0€@Ü\¿�ƒ¿ÀÿðzX, 𡟨k(From Patterson and Hennessy, p. 152; COPYRIGHT 1988 MORGAN KAUFMANN PUBLISHERS, INC. ALL RRIGHTS RESERVED)¡l l ðH ðh ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î[ï € 0 ‚ðzððˆðð( ð ðˆðx ðˆ c ð$€Tæ\¿ÿ?PˆðÀ€ �ðà  \ ð žðZ ðˆ ³ ð€,ç\�ƒ¿Àÿ @P�ÃĈRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelð/ÀwOðà \ ð žðH ðˆ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î[ï € 0 ‚ðzðŒðð( ð ðŒðx ðŒ c ð$€8ø\¿ÿ?PˆðÀ€ �ðà  \ ð žðZ ðŒ ³ ð€ù\�ƒ¿Àÿ @P�ÃĈRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelð“‘€#ðà \ ð žðH ðŒ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îyï € 0  ð˜ð�ð0ð( ð ð�ðx ð� c ð$€¸]¿ÿ?PˆðÀ€„�ðà  ] ð žðx ð� c ð$€�]¿ÿ@Pˆðš¹{ºðà ] ð žðH ð� ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î[ï € 0 ‚ðz ð”ðð( ð ð”ðx ð” c ð$€À]¿ÿ?PˆðÀ€ �ðà  ] ð žðZ ð” ³ ð€]�ƒ¿Àÿ @P�ÃĈRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelðD™‚dðà ] ð žðH ð” ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î[ï € 0 ‚ðz0ð˜ðð( ð ð˜ðx ð˜ c ð$€\*]¿ÿ?PˆðÀ€ó�ðà  ] ð žðZ 𘠳 ð€+]�ƒ¿Àÿ @P�ÃĈRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelðDö\dðà ] ð žðH 𘠃 ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îyï € 0  ð˜@ðœð0ð( ð ðœðx ðœ c ð$€,;]¿ÿ?PˆðÀ€ �ðà  ] ð žðx ðœ c ð$€<]¿ÿ@PˆðJÓÓðà ] ð žðH 𜠃 ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îyï € 0  ð˜Pð ð0ð( ð ð ðx ð  c ð$€8K]¿ÿ?PˆðÀ€ �ðà  ] ð žðx ð  c ð$€üK]¿ÿ@Pˆð=Üåðà ] ð žðH ð  ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îyï € 0  ð˜`ð¤ð0ð( ð ð¤ðx ð¤ c ð$€ÈX]¿ÿ?PˆðÀ€ �ðà  ] ð žðx ð¤ c ð$€ŒY]¿ÿ@Pˆð=Üåðà ] ð žðH 𤠃 ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îyï € 0  ð˜pð¨ð0ð( ð ð¨ðx ð¨ c ð$€xo]¿ÿ?PˆðÀ€ �ðà  ] ð žðx ð¨ c ð$€Äs]¿ÿ@Pˆð=Üåðà ] ð žðH 𨠃 ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îØï € 0 ÿð÷ ð4ð�ð( ð ð4ðx ð4 c ð$€¥�¿ÿ?PˆðÀ€ �ðà  � ð žð® ð4 “ ðZ€tZ•�«g‚Ö³ƒ«g„Ö³…†‡ˆ‰Š‹¿�ƒ¿Àÿ ?@P�ÃĈRectangle: Click to edit Master text styles Second level Third level Fourth level Fifth levelðÃföãðà • ð žð! ð4 3 ðr€€$�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð¤ëÐë ðŸ¨!Caller save /Callee save register¡ " "µ‡þª ðH ð4 ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +î¾ï € 0 å ðÝ °ð8ðu ð( ð ð8ðx ð8 c ð$€ð?„¿ÿ?Pˆð}“šMðà  � ð žðx ð8 c ð$€àF„¿ÿ@Pˆð=Üåðà � ð žð” ð8 # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðãã & ð” ð8 # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðT Ðó­ð”B ð8 # ðl…D¿ÀÂËÔ”ÑÒÓÔÕÿ¨)¨)?¿ðV ý ðÙ¢ ð8 # ðl€x�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð� † °  ð=Ÿ¨compile¡ 2ðï¢ ð8 # ðl€üT�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð ƒ7  ðSŸ¨a.s¡ 2ªðx¢ ð 8 # ðl€¼b�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðì ‡W Í ðÜŸ \.text & Parameter pass Jal printf & .data ¡0/0  2)cª, ð” ð 8 # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ð= … Âæ ðˆB ð 8€  ð`…D¿ÀÂËŸoÑÒÓÿ¨)¨)?¿ð½ C  ðÚ¢ ð 8 # ðl€Ä�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð q1 :  ð>Ÿ¨assembly¡  2 ðï¢ ð 8 # ðl€Th�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð«’ Ë  ðSŸ¨a.o¡ 2ªðN ð8 3 ðr€¤:�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð‰ ú m‘  𬟨0323: Parameter pass 444: Jal reloc add.¡1 1ª>ð” ð8 # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ð¾° í¤ð ð8 3 ðr€Lq�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðÏ7ª£ ðoŸ¨Ref: 444¡ ª ð¢ ð8 # ðl€Ä÷„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðÄ ” ®ä ðeŸ¨a.o- relocation table¡ 2ªðH ð8 ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îÛï € 0 ðúÀð"<ð’ð( ð ð<ðx ð< c ð$€$µ„¿ÿ?Pˆð}°·Mðà  „ ð žð” ð < # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðm È ðó¢ ð < # ðl€”â„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðW “w  ðWŸ¨a.o¡ 2µ‡þªðU ð< 3 ðr€ày¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðO °#ð  𳟨5323: Parameter pass 444: Jal reloc add. ret¡6 P6ª>ð” ð< # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðNÃ� 🢠ð< # ðl€Àƒ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð�œl¸  ðŸ¨555: Create stack Process args $a0 <- file ID $a1 <- adds. Of heap $a2 <- length of string $v0 <- 4 (write) Syscall ret¡40  2z0 2€cª,Sðú¢ ð< # ðl€˜{¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðaóf[ ð^Ÿ¨printf.o¡  2 µ‡þªð” ð< # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ð½>{£ð ð< 3 ðr€Ð˜¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðØŸ¬ ðoŸ¨Ref: 444¡ ª ð” ð< # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ð×=c íð ð< 3 ðr€£¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð"Š ö ðoŸ¨Def: 555¡ ª ð¢ ð< # ðl€P­¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðm ÁÛ� ðiŸ¨a.o- relocation table¡ 2µ‡þªð ¢ ð< # ðl€ì¶¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðʱž ðpŸ¨printf.o- relocation table¡  2µ‡þªð” ð< # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ð¹¥ ìÉð ð< 3 ðr€4S�¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð&Ù U.  ð}Ÿ¨%L323: Parameter pass L444: Jal L555¡& &ªð„¢ ð< # ðl€ÔÀ„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð² e5Ú ð蟨dL555: Create stack Process args $a0 <- 1 $a1 <- adds. Of heap $a2 <- 13 $v0 <- 4 Syscall ret¡40  2^0 2ecª,7ð”â ð< # ðl…‡�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðm ¶ fðÚ¢ ð< # ðl€ˆ�‰¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð� v é {  ð>Ÿ¨linker¡ 2ðç¢ ð< # ðl€¶Š¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð­Õ§ ðKŸ¨Executable file¡  2µ‡þð” ð < # ðl…‡�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðá Ýðí ð< 3 ðr€Àh‰¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð?Ê-­ ðKŸ¨Start-up routine¡ µ‡þð- ð!< 3 ðr€ÀŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðç–Lï ð‹Ÿ¨!__main: jal main jal exit¡" "ª,  ð”B ð"<À # ðl…D¿ÀÌÂËÔ”ÑÒÓÔÕÿ¨)¨)?¿ðã:¶ãðH ð< ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +îóï € 0 ðÐð'@ðªð( ð ð@ðx ð@ c ð$€�{‰¿ÿ?Pˆð}€‡Mðà  ‰ ð žð” ð@ # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ð’L ð ð@ 3 ðr€ìÌ„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð9µ‡  ð}Ÿ¨%323: Parameter pass 444: J reloc 555¡& &ªð„¢ ð@ # ðl€`ÏŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðÒ ²‚ú ð蟨d555: Create stack Process args $a0 <- 1 $a1 <- adds. Of heap $a2 <- 13 $v0 <- 4 Syscall ret.¡40  2_0 2ecª,7ð㢠ð@ # ðl€¼çŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð­E…§ ðGŸ¨Executable file¡ 2ð㢠ð@ # ðl€<–„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð3È - ðGŸ¨(software trap)¡ 2ðšB ð@€ 3 ðr…D¿ÀÌÂË›1ÎÑÒÓÔÕÿ¨)¨)?¿ðf“] &ð”B ð@@ # ðl…D¿ÀÌÂË>ßÑÒÓÔÕÿ¨)¨)?¿ðÆ€œíðÝ¢ ð@ # ðl€ØbŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð�¯ï { ðAŸ¨ user mode¡  2 ð”B ð@@ # ðl…D¿ÀÌÂË>ßÑÒÓÔÕÿ¨)¨)?¿ðî9 U ð㢠ð@ # ðl€à‚„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðyX ˜s ðGŸ¨privileged mode¡ 2ð¢ ð@ # ðl€ª„¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðð‚ Ù  ð�Ÿ¨'Set status register Jal trap(4) handler¡( 2(ªð” ð @ # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðöš Cðç¢ ð!@ # ðl€øjŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðsë Bm  ðKŸ¨trap(4) handler¡  2µ‡þð`¢ ð"@ # ðl€änŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðZ º —”  ðÄŸ¨>what trap -- syscall $v0 ? ------- 4 Jal 4th function driver¡6? 2, ª, ð” ð#@ # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðM † l¬ ðø¢ ð$@ # ðl€0=Š¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðã % � ð\Ÿ¨$Transfer 13 bytes to graphic display¡% 2%ðû ð%@ S ð~€üÓŠ…‡¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ðü • "ö  ðMŸ¨4th function driver¡ µ‡þð” ð&@ # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðú à­ð” ð'@ # ðl…‡�ƒ¿ÀÌÂË›1ÒÓÔÕÿ¨)¨)?¿ðà#²ðð4 ð@ 3 ðr€àGŠ¿�ƒ¿ÀÂË›1ÒÓÔÕÿ¨)¨)?¿ð¯@³ë 𒟨(__main: jal main jal exit main:¡) )ª,   ðH ð@ ƒ ð0�ƒ“ŽŸ‹”Þ½h¿ÿ ?ð ÿÿÿ@EŒ·ÁëffìØ‚²²²o‰÷ÏÛýˆ�Šyº___PPT10‹Y+Dñ='ñ Gÿÿÿÿ=ñ @Bñ +rì0¿Øà^ Z�®«p2å;§ LbZã\F`êe³ „�P¸³»¿—ÁúÄ]ÈÞÊ_ÍàϾpç ¤Çbkhyl€“–Ç€¿çFêÐîv˜ Í^8?ÉAZDëF|IïÅV9%P.óšaÒA׿êüõcÙåÞ÷wþÿà…ŸòùOh«‘+'³Ù0ˆ>�˜ÐÜô d p|   ¬ ¸ ÄÐØàä0Computer Architecture What Does It Mean?? ?Guang R. GaoPC:\Program Files\Microsoft Office\Templates\Presentation Designs\Blueprint.potHWU78Microsoft PowerPoint 4.0@Øþ\™Dš÷¿@À�ì°MY¾@FïÕ!м@ ¥ÑÅAG <ÿÿÿÿ; ì  G-  y¡üÿÿÿ-úÿÿÿ-$ÿÿÿÿÿÿx x ÿÿÿÿÿÿú--'ÿÿüÏÛý--$:ÿÿ:  ÿÿ:ÿÿ--'ÿÿ-B( ÿÿÿýÛϪDªªDª--$      --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$           --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$     --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$      --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$      --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$       --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ $ $ % % % %%%%%$$--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ * * * * + +++****--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ / / / 0 0000///--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ 4 4 5 5 5 5555544--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ : : : : ; ;;;::::--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ? ? ? @ @@@@???--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ D D E E E EEEEEDD--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ J J J J K KKKJJJJ--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ O O O P PPPPOOO--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ T T U U U UUUUUTT--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ Z Z Z Z [ [[[ZZZZ--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ _ _ _ ` ````___--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ d d e e e eeeeedd--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ j j j j k kkkjjjj--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ o o o p ppppooo--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ t t u u u uuuuutt--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ xxxxx--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ x x x x x --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ xxxx--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ xxxxx--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ xxxxx--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ x xxx --ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ %%x%x%x%x$x$%%%%%--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ++x+x*x*x*x***+++--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ 00x0x/x/x//0000--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ 55x5x5x5x4x455555--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ;;x;x:x:x:x:::;;;--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ @@x@x?x?x??@@@@--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ EExExExExDxDEEEEE--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ KKxKxJxJxJxJJJKKK--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ PPxPxOxOxOOPPPP--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ UUxUxUxUxTxTUUUUU--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ [[x[xZxZxZxZZZ[[[--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ``x`x_x_x__````--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ eexexexexdxdeeeee--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ kkxkxjxjxjxjjjkkk--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ppxpxoxoxoopppp--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ uuxuxuxuxtxtuuuuu--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ {{x{xzxzxzxzzz{{{--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ €€x€xxx€€€€--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ……x…x…x…x„x„……………--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ‹‹x‹xŠxŠxŠxŠŠŠ‹‹‹--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ��x�x�x�x������--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ••x•x•x•x”x”•••••--ð'ÿÿ-B( ÿÿÿýÛϪDªªDª--$ ››x›xšxšxšxššš›››--ð'ÿÿúo‰÷-ü-%šÿÿš)--ð'ÿÿúo‰÷--%A--ð'ÿÿúo‰÷--%Y55--ð'ÿÿúo‰÷--%t --ð'ÿÿúo‰÷-- %     --ð'ÿÿúo‰÷--%)_’_--ð'ÿÿúo‰÷--%�6�h--ð'ÿÿúo‰÷-- %‘_‘_‘`‘`�a�aŽaŽ`�`�_�^Ž]Ž]�]--ð'ÿÿûþÿ�@"Tahoma-. @EŒ2 u 10/14/2005.û ¼"System¨7ä-ðûþÿ�@"Tahoma-. @EŒ 2 u>\….-ðûþÿ�@"Tahoma-. @EŒ2 u?course.-ðûþÿ�@"Tahoma-. @EŒ 2 uE\….-ðûþÿ�@"Tahoma-. @EŒ2 uFcpeg323.-ðûþÿ�@"Tahoma-. @EŒ 2 uM-….-ðûþÿ�@"Tahoma-. @EŒ 2 uN05F.-ðûþÿ�@"Tahoma-. @EŒ 2 uR\….-ðûþÿ�@"Tahoma-. @EŒ2 uSTopic2d.-ðûþÿ�@"Tahoma-. @EŒ 2 uZ-….-ðûþÿ�@"Tahoma-. @EŒ2 u[323.ppt.-ðûþÿ�@"Tahoma-. @EŒ 2 u‘1….-ðûøÿ¼@"Arial-. ff2 ETopic2d.-ðûøÿ¼@"Arial-. ff 2 #High.-ðûøÿ¼@"Arial-. ff 2 5-….-ðûøÿ¼@"Arial-. ff%2 8Level languages and .-ðûøÿ¼@"Arial-. ff2 $4System Software.-ðûøÿ¼@"Arial-. ff 2 ->(….-ðûøÿ¼@"Arial-. ff2 -A Toolchain.-ðûøÿ¼@"Arial-. ff 2 -f)….-ðûùÿ¼@"Arial-. @EŒ-2 C,Introduction to Computer .-ðûùÿ¼@"Arial-. @EŒ$2 L3Systems Engineering .-ðûùÿ¼@"Arial-. @EŒ2 \C (CPEG 323).-ðþÿÕÍÕœ.“—+,ù®DÕÍÕœ.“—+,ù®H€ˆ¬´¼Ä Ì ÔÜ äìôü  £éýLetter Paper (8.5x11 in)ý!ã0Ø 8Times New RomanTahoma Wingdings宋体ArialSymbol Murray Bold Blueprint?Topic2d High-Level languages and System Software (Toolchain) Reading List Tool ChainSlide 4 Tool Chain Tool Chain Tool ChainTool Chain - PreprocessorTool Chain - CompilerParameter PassingSaving RegistersWhy caller save / callee save? Caller save Callee SaveCaller Save / Callee SaveTool Chain - AssemblerTool Chain - LinkerTool Chain - loaderTool Chain – Library Tool Chain Slide 21Compiling/Assembling a ProgramRelocation TableLinking a programLoading Libraries Slide 27 Slide 28 Slide 29 Slide 30 Debugger Debugger Run a Executable File (OS View) Slide 34%Typical Layout of an Executable FileThe Role of the OS Kernel$Processor Support for the OS kernelTrapsTrap HandlersSoftware Traps System CallsExample: Call to printf()Calling printf()Processing the TrapToolchain ReviewProgram TranslatesProgram Translates(cont.)Program Translates (Cont.)  Fonts UsedDesign Template Slide Titles0¬ 8@ _PID_HLINKSéýAdhttp://www.intel.com/ö_À‘ãÙôÚ0HWUHWUþÿÿÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     þÿÿÿ !"#$%&'()*+,-./0þÿÿÿ2345678þÿÿÿ:;<=>?@þÿÿÿýÿÿÿýÿÿÿýÿÿÿEþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ��d›Oφꪹ)èþÿÿÿPicturesÿÿÿÿÿÿÿÿÿÿÿÿCurrent Userÿÿÿÿÿÿÿÿ9SummaryInformation(ÿÿÿÿ¸>PowerPoint Document(ÿÿÿÿÿÿÿÿÿÿÿÿýDocumentSummaryInformation8ÿÿÿÿÿÿÿÿ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ