CSC 211: Exam 2
CSC 211 - Computer Organization and Architecture - Weinman
1 Learning Outcomes
At the end of this unit you should be able to
- Trace an execution of a MIPS assembly program
- Translate C code to MIPS assembly, including
- Assignment statements
- Basic arithmetic (+,-) and bitwise operations (,
&, - , <<, and >>)
- if-else statements
- switch statements
- for, while, and do-while loops
- Array accesses (reads and writes)
- Pointer arithmetic and dereferencing
- Function calls with parameters and return values
- Distinguish MIPS instructions from pseudoinstructions
- Identify the value of a load byte operation on the big-endian MIPS
architecture after a store word operation
- Identify the format of a given MIPS instruction (e.g., R, I, or J)
- Write MIPS procedures that obey calling conventions
- Save/retrieve values on/from the call stack
- Convert between MIPS a assembly instruction and its machine code representation
- Identify the addressing mode of any MIPS instruction that changes
the PC
- Calculate the numerical value of BranchAddr for a branch
address in a branch instruction, given MIPS assembly code including
the target label
- Identify the range of addresses available to a jump or branch instruction
- Explain the tasks of the compiler, assembler, and linker (respectively)
- Provide the contents of the relocation and symbol tables in an object
file, given an assembly program
2 Study Problems
The following exercises are from Patterson and Hennessy (Fifth Edition)
- Chapter 2
- 1-5, 7-36, 38-42