Ed Jorgensen, 2019. — 163 p.
Additional References
MIPS Architecture Overview
Architecture Overview
Data Types/Sizes
Memory
Memory Layout
CPU Registers
Reserved Registers
Miscellaneous Registers
CPU / FPU Core Configuration
Data Representation
Integer Representation
Two's Complement
Byte Example
Halfword Example
Unsigned and Signed Addition
Floating-point Representation
IEEE -bit Representation
IEEE -bit Representation Examples
Example → -
Example → -
Example →
IEEE -bit Representation
QtSpim Program Formats
Assembly Process
Comments
Assembler Directives
Data Declarations
Integer Data Declarations
String Data Declarations
Floating-Point Data Declarations
Constants
Program Code
Labels
Program Template
Instruction Set Overview
Pseudo-Instructions vs Bare-Instructions
Notational Conventions
Data Movement
Load and Store
Move
Integer Arithmetic Operations
Example Program, Integer Arithmetic
Logical Operations
Shift Operations
Logical Shift
Arithmetic Shift
Shift Operations, Examples
Control Instructions
Unconditional Control Instructions
Conditional Control Instructions
Example Program, Sum of Squares
Floating-Point Instructions
Floating-Point Register Usage
Floating-Point Data Movement
Integer / Floating-Point Register Data Movement
Integer / Floating-Point Conversion Instructions
Floating-Point Arithmetic Operations
Example Programs
Example Program, Floating-Point Arithmetic
Example Program, Integer / Floating-Point Conversion
Addressing Modes
Direct Mode
Immediate Mode
Indirection
Bounds Checking
Examples
Example Program, Sum, and Average
Example Program, Median
Stack
Stack Example
Stack Implementation
Push
Pop
Multiple push's/pop's
Example Program, Stack Usage
Procedures/Functions
MIPS Calling Conventions
Procedure/Function Format
Caller Conventions
Linkage
Argument Transmission
Call-by-Value
Call-by-Reference
Argument Transmission Conventions
Function Results
Registers Preservation Conventions
Miscellaneous Register Usage
Summary, Callee Conventions
Call Frame
Stack Dynamic Local Variables
Procedure Examples
Example Program, Power Function
The example program, Summation Function
Example Program, Pythagorean Theorem Procedure
QtSpim System Service Calls
Supported QtSpim System Services
QtSpim System Services Examples
Example Program, Display String and Integer
Example Program, Display Array
Example Program, Read Integer
Example Program, Read String
Multi-dimension Array Implementation
High-Level Language View
Row-Major
Column-Major
Example Program, Matrix Diagonal Summation
Recursion
Recursion Example, Factorial
Example Program, Recursive Factorial Function
Recursive Factorial Function Call Tree
Recursion Example, Fibonacci
Example Program, Recursive Fibonacci Function
Recursive Fibonacci Function Call Tree
Appendix A – Example Program
Appendix B – QtSpim Tutorial
Downloading and Installing QtSpim
QtSpim Download URLs
Installing QtSpim
Working Directory
Sample Program
QtSpim – Loading and Executing Programs
Starting QtSpim
Main Screen
Load Program
Data Window
Program Execution
Log File
Making Updates
Debugging
Appendix C – MIPS Instruction Set
Arithmetic Instructions
Comparison Instructions
Branch and Jump Instructions
Load Instructions
Logical Instructions
Store Instructions
Data Movement Instructions
Floating-Point Instructions
Exception and Trap Handling Instructions
Appendix D – ASCII Table