Study the material according to the objectives below. If you can address these, you'll be prepared for the first Exam.
You may use a single double-sided sheet of notes.
No laptops will be allowed.
Selected reference material pages will be provided.
You will need a calculator to solve certain problems.
1. Introduction and number systems
Perform unsigned and signed (2’s complement) binary arithmetic.
Convert between binary, decimal, and hexadecimal numbers.
2. Microcontroller components
Define elements of a “microcontroller” and contrast it with those of a “microprocessor”.
State the purpose of the following computer parts: clock, Program Counter, ALU, memory (SRAM, EEPROM, Flash), I/O Registers, General-purpose Registers
3. Programmer’s model (Registers and Memory)
List the various types of memories on the Atmega32 and describe the purpose of each.
Describe the Atmega32 register set (R0-R31, X, Y, Z, SP, PC, SREG)
Describe the location (which memory) of instruction code, non-volatile data, volatile data, and stack data.
Describe the data memory map for the Atmega32 (size, starting address)
Describe the program memory map for the Atmega32 as configured for use in CE-2800 (reserved vs. usable)
4. Addressing, Instruction Cycles
Apply each of the Atmega32 addressing modes with various instructions (immediate, direct, indexed (X, Y, Z).
Calculate the cycle count and execution time for short instruction sequences (given the number of cycles per instruction).
Describe the difference in addressing between program and data memory.
5. Assembler & directives
Use the appropriate section (.SREG, .DSEG) for code and data.
Use labels to define and refer to instruction and data addresses.
Be able to determine the address value (instruction or data) assigned by the assembler to a label.
Describe the purpose of directives .EQU, .DEF, .ORG, .BYTE, .CSEG, .DSEG
Reserve/allocate memory (initialized and uninitialized) of byte and word size.
Allocate strings in non-volatile memory.
6. Instruction set
Use logical instructions (AND, OR, and EOR) instructions to implement bit manipulations.
State the basic SREG manipulations performed by bit, comparison, and arithmetic operations and be able to determine all such manipulations by referring to the Atmega32 instruction set summary.
Use the RJMP and RCALL instructions and explain the primary purpose of each.
Make appropriate use of conditional (signed, unsigned, etc.) branches (based on N and Z bits of SREG)
Use the load/store, shift/rotate, increment/decrement, add/subtract, jump/branch, call/return instructions to implement short programs.
Analyze (determine memory and register (including SREG) contents) short assembly language programs.