This is a free online book in assembly language programming of the MIPS processor. It emphasizes the topics needed for study of computer architecture: bits, bit patterns, operations on bit patterns, and how bit patterns represent instructions and data. This course is equivalent to a semester-long junior college or university course (except, perhaps, for the emphasis on bit patterns).
Book Description
The emphasis of the course is on understanding how computers work. This will provide a basis for further study of computer architecture and computer software. The MIPS processor, the subject of this course, has a well designed architecture and is particularly fruitful to study. However, the goal of the course is not to turn you into a MIPS programmer, but to give you an understanding of all computer systems.
Table of Contents
- Computer Architecture and Assembly Language.
- Analog and Binary Signals.
- Bits and Bit Patterns.
- Computer Organization.
- Characters.
- Number Representation.
- Binary and Hex Representation.
- Binary Addition and Two’s Complement Representation.
- A Simple SPIM Program.
- MIPS Programming Model.
- Bitwise Logic with Immediate Operands.
- Shift Instructions and Logic Instructions.
- Integer Addition and Subtraction Instructions.
- Integer Multiplication, Division, and Arithmetic Shift.
- Memory Access: Loading and Storing Registers.
- More Memory Access: Bytes and Halfwords.
- Jump and Branch Instructions.
- Set Instructions and more Branch Instructions.
- Structured Programming.
- Programming Examples.
- The Extended Assembler.
- The SPIM Exception Handler.
- Instructions for Bitwise Logic and Math.
- Branch Instructions, Set Instructions, and Indexed Addressing.
- The Run-time Stack.
- Simple Subroutine Linkage.
- Stack-based Linkage Convention.
- Frame-based Linkage Convention, Variables, and Recursion.
- Binary Fractions. Drill on Binary Fractions
- IEEE 754 Floating Point.
- Floating Point Arithmetic on MIPS.
- Floating Point Comparison Instructions.
- Dynamic Memory Allocation.
- Data Structures.
- Linked Lists.
- Objects.