CMPT 295 Lecture Notes

  1. Course Introduction [“Course Introduction” slides]
    1. This Course [This Course slides]
    2. Grading [Grading slides]
    3. Lectures and Labs [Lectures and Labs slides]
    4. Mini-Project [Mini-Project slides]
    5. Quizzes/Exams [Quizzes/Exams slides]
    6. References [References slides]
    7. Assumptions [Assumptions slides]
    8. Expectations [Expectations slides]
    9. Computer Systems [Computer Systems slides]
    10. Hardware [Hardware slides]
    11. Topics (1) [Topics (1) slides]
  2. Revisiting C [“Revisiting C” slides]
    1. Command Line C [Command Line C slides]
    2. The Heap [The Heap slides]
    3. Multi-file C [Multi-file C slides]
    4. Compiling C [Compiling C slides]
    5. Aside: Integers in C [Aside: Integers in C slides]
  3. Assembly Introduction [“Assembly Introduction” slides]
    1. Our First Assembly [Our First Assembly slides]
    2. Calling Convention [Calling Convention slides]
    3. The Registers [The Registers slides]
    4. Another Example [Another Example slides]
  4. The Processor [“The Processor” slides]
    1. Digital Circuits [Digital Circuits slides]
    2. The Processor [The Processor slides]
    3. Instructions [Instructions slides]
    4. Memory [Memory slides]
    5. Instruction Cycle [Instruction Cycle slides]
    6. Reality [Reality slides]
    7. The Point [The Point slides]
  5. Assembly: Conditions and the Stack [“Assembly: Conditions and the Stack” slides]
    1. Revisiting Commands [Revisiting Commands slides]
    2. Control Flow [Control Flow slides]
    3. Control Example: max [Control Example: max slides]
    4. Conditional Jumps [Conditional Jumps slides]
    5. Control Structures [Control Structures slides]
    6. Status Flags [Status Flags slides]
    7. Aside: Stacks [Aside: Stacks slides]
    8. The Stack [The Stack slides]
    9. Preserving on the Stack [Preserving on the Stack slides]
    10. Local Stack Variables [Local Stack Variables slides]
    11. Base Pointer [Base Pointer slides]
    12. Recursion [Recursion slides]
    13. Operand Size [Operand Size slides]
  6. Binary Representations [“Binary Representations” slides]
    1. Counting [Counting slides]
    2. Binary Integers [Binary Integers slides]
    3. Binary Arithmetic [Binary Arithmetic slides]
    4. Signed Integers [Signed Integers slides]
    5. Two's Complement [Two's Complement slides]
    6. Adding Two's Complement [Adding Two's Complement slides]
    7. Other Operations [Other Operations slides]
  7. Bit Tricks
  8. Floating Point
  9. Assembly: Using Memory
  10. Returning to C
  11. Memory Hierarchy
  12. Processor Tricks
  13. Compiler Tricks
  14. The System
  15. Conclusion

Course home page. x86-64 Cheat Sheet.

Schedule

Week Deliverables (*) Lecture Hour Lecture Date First Slide
1 1 May 8
2 May 10
3 May 12
2 Lab 1 4 May 15
5 May 17
6 May 19
3 Lab 2 7 May 22
8 May 24
9 May 26
4 Lab 3 10 May 29
11 May 31
12 Jun 2
5 Lab 4 13 Jun 5
14 Jun 7
15 Jun 9
6 Lab 5, Quiz 1 16 Jun 12
17 Jun 14
18 Jun 16
7 Lab 6 19 Jun 19
20 Jun 21
21 Jun 23
8 Lab 7 22 Jun 26
23 Jun 28
24 Jun 30
9 Lab 8 25 Jul 3
26 Jul 5
27 Jul 7
10 Lab 9, Quiz 2 28 Jul 10
29 Jul 12
30 Jul 14
11 Lab 10 31 Jul 17
32 Jul 19
33 Jul 21
12 Lab 11 34 Jul 24
35 Jul 26
36 Jul 28
13 Lab 12, Mini-Project 37 Jul 31
38 Aug 2
39 Aug 4
14 Final Exam

* Check CourSys for the actual due dates and times.