- Exercises - many, many exercises to go with the lectures
- Powers of Two - a browser game to practice them
- The Number Circle - numbers aren’t on a line, silly
- Load and Store Simulator - how loads and stores really work
- MIPS style guide - how to write asm that doesn’t look terrible.
- MIPS instructions - common instructions and what they do.
- MIPS cookbook - micro-tutorials on how to do common things in MIPS.
- MIPS ⬄ C correspondences - you write asm by pretending to be a compiler. These are the rules.
Right-click and save to download the asm and circuit files.
Safari users: Safari sometimes changes file extensions. Do not trust it.
|fixed_point.asm||Shows how to add, multiply, and divide 24.8 fixed-point numbers.|
|IntRanges.java||Shows and explains the ranges of the integer types in Java.|
|Bitwise.java||Shows several bitwise operators and oddities.|
|Bitset.java||Bitsets are a way of treating the bits of an integer like a small array of booleans.|
|Bitfields.java||Using bitwise operations to encode and decode colors.|
|FloatBits.java||Shows some interesting examples of float bit patterns.|
|Multiplication.java||Implementations of the exponential and linear time integer multiplication algorithms.|
|splitter_bitfields.circ||Using splitters to take apart/put together bitfields.|
|full_adder.circ||A 1-bit full adder made of gates.|
|fast_mult_4x4.circ||A fast (combinational) 4x4 multiplier.|
|RS_latch.circ||An RS latch made of NOR gates.|
|Circuit.js RS Latch||Circuit.js can simulate it at a lower level, so you can see the current and voltages.|
|D_latch.circ||A D latch made from an RS latch.|
|D_flipflop.circ||A D flip-flop made from 2 D latches.|
|register_4bit.circ||A 4-bit register made from D flip-flops.|
|simple_counter.circ||A register paired with an adder can count up each clock tick.|
|fan_controller.circ||A simple FSM for controlling a ceiling fan.|
|slow_mult_4x4.circ||An FSM that multiplies numbers using the slow (sequential) method.|
|div_4x4.circ||An FSM that divides two 4-bit numbers.|
|pc_fsm.circ||The "MIPS" PC FSM I made in class, but cleaned up.|
|decoding.circ||Some examples of decoding an instruction.|