Test 2 will be Thursday, April 15 (if I cannot find a proctor is will be Tuesday, April 20) . It will be closed book and notes, except for one 8.5" x 11" sheet of paper (front and back) with notes, and your purple sheet of register conventions.
Chapter 15. MIPS Assembly Language
MIPS Processor Architecture: registers, register conventions, addressing modes, memory layout
MIPS Instruction Set: three ML instruction formats, loads/stores, arithmetic instructions, logical instructions, shift/rotate instructions, branch/jump instructions
SPIM System Calls: Table 15.10
SPIM Assembler Directives: .data, .text, .word, .asciiz, .ascii, .GLOBL, .align
Arrays: element addressing both 1-d and 2-d
Subprograms: MIPS Register conventions
In addition to knowledge about the above concepts, the following assembly-language programming skills are to be tested too:
1) translate high-level language control statements (while, for, if, etc.) into MIPS assembly language (be able to handle complex Boolean expressions involving ANDs, ORs, etc.)
2) translate high-level language code containing array accesses into MIPS assembly language
3) use MIPS register conventions to decide which arguments/parameters and local variables should be stored in caller-saved ($a and $t-registers) or callee-saved ($s-registers)
4) translate high-level language subprograms into MIPS assembly language (passing parameters into the subprogram using the $a registers, building the call frame on the run-time stack if necessary, save $s and $ra registers if necessary, passing the value returned by a function in the $v0 register, restoring $s and $ra registers if necessary, jr back to the caller)