Hello Computer Organization Students:
Test 2 will be Thursday, April 10, in class. It will be closed book and notes, except for one 8.5" x 11" sheet of paper with notes and the orange ARM Quick Reference Card.
Chapter 2. Machine Instructions and Programs Memory Locations and Addresses: byte addressability, word alignment Memory Operations: Loads and stores General Assembly language instructions: data transfer, arithmetic and logic operations on data, program sequencing and control, and I/O transfers Branching and condition codes (N, Z, V, C) Addressing Modes and their machine language representation: immediate, register, absolute/direct, Indirect, Index, base with index, base with index and offset, relative, autoincrement, and autodecrement Stacks subroutines, stack frame shifting and logic instructions encoding of machine instructions Chapter 3. Part I on ARM (sections 3.1 - 3.7) ARM architecture: RISC, 16 32-bit registers, 32-bit addresses, barrel shifter for second operand Load and store addressing modes Arithmetic and logic instructions Branching instructions, setting of condition codes Machine language representation of ARM instructions Arrays: element addressing both 1-d and 2-d Subprograms: ARM Register convensions 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 ARM assembly language (be able to handle complex boolean expressions involving ANDs, ORs, etc.) 2) translate high-level language code containing array accesses into ARM assembly language 3) use ARM (APCS) register convensions to decide which parameters and local variables should be stored in caller-saved (a-registers) or callee-saved (v-registers) 4) translate high-level language subprograms into ARM assembly language