Clemson University -- CPSC 231 -- Fall 2007 -- Study Guide for Exam 3 Covers chapters 5 through 9 (only sections 1 to 7 in chapter 9). 1. Be able to define and discuss these terms: signed load unsigned load text (code) section .text data section .data bss section .bss heap stack stack frame stack pointer frame pointer local variables global variables static variables array storage row-major column-major register windows save restore subroutine return address parameters actual parameters formal parameters call by value call by result call by value-result call by reference leaf subroutine instruction format PC-relative address set sethi position-independent code global symbol .global .align .asciz .skip .word 2. Be able to explain the addressing arithmetic for array element access, including cases with nonzero origin indexing. 3. Be able to explain different types of variables and where they would be placed in memory. (I.e., globals, locals, dynamic) 4. Be able to identify five basic components of a stack frame and explain why each is necessary. (I.e., parameters, return address, saved frame pointer, saved registers, local variables) 5. Given a C program and its generated assembly language from gcc -S, identify the frame pointer relative addresses of the local variables and/or explain instructions used to enter or exit the procedure. 6. Be able to explain parameter-passing mechanisms and identify which is used in sample assembly language segments.