Notes: Computer Systems and Assembly Programming

I teach Computer Systems and Assembly language using fill-in-the-blank worksheets that I’ve designed, rather than from slides. Research has shown that students who manually write out notes are more likely to retain information presented in class over students who type notes. Having these worksheets allows students to handwrite notes and follow along in class, without getting overwhelmed with feeling like they need to write everything. I include examples for students to work out both during lecture with their classmates, and outside of class.

Introduction

thumbnail of intro notes

history of computing, computing levels of abstraction

Integer Numbering Systems

thumbnail of numbering system notes

unary, grouping, positional, decimal, octal, hexadecimal, binary

Logic Design

MOSFET transistors, PMOS, NMOS, inverter, and, or, nand, nor, xor, xnor, Venn diagrams

Boolean Algebra

thumbnail of boolean algebra notes

boolean identities, DeMorgan’s Law

Sequential Logic

thumbnail of sequential logic notes

SR latch, active high, active low, D latch, D flip flop

Data Representation

thumbnail of data representation notes

signed numbers, sign magnitude, two’s complement, bias / excess notation, floating point, fixed point

Arithmetic and Logical Operations

thumbnail of arithmetic and logical notes

carry out, overflow, bitwise, reduction, shifts, rotate

Von Neumann Model

Von Neumann Architecture, processing unit, control unit, input, output, memory, address space, addressibility

MIPS Instructions

general purpose registers, assembler directives, data directives, labels, instruction format, instruction types, operate instructions, data movement (loads and stores), control flow instructions, little endian, big endian, memory alignment, pseudo instructions, instruction encoding

Memory Representation in MARS

MARS memory representation

Addressing Modes

register direct, immediate, register indirect, base + offset (displacement), PC relative, pseudo direct

Stacks and Subroutines


stack, jump instructions, return address, subroutines

Midterm Review

I designed this fill-in-the-blank study guide as a midterm review. It covers topics including numbering systems, logic gates, CMOS circuits, binary, Boolean logic and algebra, negative number representation, sequential logic, memory, addressability, and MIPS.

This is a living Google document. The most up-to-date version can be found here.

Links
MIPS data path image
reference tables – ascii, opcodes, syscalls, instruction format