Lecture 1: Course Intro and What Assembly Is
- Covers course logistics (grading, rules, and how the class will run).
- Introduces what “computer organization vs. computer architecture” means and where this course fits.
- Explains what assembly language is, how it relates to machine language, and why learning it matters.
|
Download PDF |
Lecture 2: Data Representation and Boolean Logic Basics
- Explains how computers represent numbers in binary (and how to convert between decimal, binary, and hex).
- Covers integer sizes and how signed vs. unsigned values are stored.
- Introduces Boolean/bit-level thinking that underpins low-level programming.
|
Download PDF |
Lecture 3: x86 Processor Architecture (How the CPU and Memory Work)
- Breaks down a basic microcomputer: CPU, memory, buses, and I/O devices.
- Introduces the IA-32 (32-bit x86) execution environment (registers, instruction cycle, and memory access).
- Compares memory-management modes (real vs protected) and gives an overview of 64-bit processors and system I/O.
|
Download PDF |
Lecture 4: Assembly Language Fundamentals (Core Instructions and Addressing)
- Teaches instruction structure and operand types (immediate, register, memory).
- Focuses on data movement and basic arithmetic (e.g., MOV and add/sub patterns).
- Introduces addressing ideas (including indirect addressing) plus basic control flow like JMP/LOOP and a look toward 64-bit programming.
|
Download PDF |
Lecture 5: Procedures and the Runtime Stack
- Explains what the stack is and why it matters (PUSH/POP and how the stack grows).
- Shows how procedures work using CALL and RET (including nested calls).
- Introduces procedure design basics like parameters, preserving registers, and good documentation habits.
|
Download PDF |
Lecture 6: Conditional Processing (Making Decisions in Assembly)
- Reviews CPU flags and how bitwise/compare instructions affect them.
- Teaches conditional jumps and conditional loop instructions.
- Builds up to higher-level logic patterns like conditional structures and finite-state machines.
|
Download PDF |
Lecture 7: MASM Control-Flow Directives (.IF / .WHILE / .REPEAT)
- Shows how MASM lets you write readable IF/ELSE logic using “runtime expressions.”.
- Explains how signed vs. unsigned comparisons change which jumps get generated.
- Introduces structured looping directives like .REPEAT/.UNTIL and .WHILE/.ENDW
|
Download PDF |
Lecture 8: Advanced Procedures I (Stack Frames and Parameters)
- Introduces the idea of a stack frame (the reserved stack space used while a procedure runs).
- Focuses on passing arguments on the stack (by value and by reference).
- Covers the basics of local variables and stack-frame setup/teardown concepts.
|
Download PDF |
Lecture 9: Advanced Procedures II
- Extends advanced procedure concepts to include recursion (procedures calling themselves).
- Introduces MASM tools like INVOKE/ADDR/PROC/PROTO for cleaner procedure calls and declarations.
- Discusses how to organize larger programs across multiple modules/files.
|
Download PDF |
Lecture 10: Locality, Memory Hierarchies, and Cache Basics
- Explains temporal vs. spatial locality (why programs often reuse nearby/recent data).
- Introduces memory hierarchies and the basic purpose of caches (small/fast vs big/slow memory).
- Covers cache hits vs. misses and core cache design ideas like placement and replacement.
|
Download PDF |