Download Full Text (5.0 MB)


This book was written to introduce students to assembly language programming in MIPS. As with all assembly language programming texts, it covers basic operators and instructions, subprogram calling, loading and storing memory, program control, and the conversion of the assembly language program into machine code.

However this book was not written simply as a book on assembly language programming. The larger purpose of this text is to show how concepts in Higher Level Languages (HLL), such as Java or C/C++, are represented in assembly. By showing how program constructs from these HLL map into assembly, the concepts will be easier to understand and use when the programmer implements programs in languages like Java or C/C++. Concepts such as references and variables, registers, binary and Boolean operations, subprogram execution, memory types (heap, stack, and static), and array processing are covered to clarify the decisions made when implementing HLL. Program control is presented using a mapping from structured programs in pseudo code to help students understand structured programming, and why it exists. Memory access in assembly is presented to high light the difference between references (pointers) and values, and how these impact HLL.

This book has numerous code examples, and many problems at the end of each chapter, and it is appropriate for a class in Assembly Language, or as a extra resource for a class in Computer Organization.

Publication Date



Charles W. Kann III


Gettysburg, PA


MIPS, Assembly, Procedural Programming, Binary Arithmetic, Computer Organization, Computer Architecture


Computer and Systems Architecture | Computer Engineering | Computer Sciences | Systems Architecture


Computer Science


Additional resources for this book at available at accessible at

Please contact the author at if you wish to adopt this book for a course - thanks!

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 License.

Introduction To MIPS Assembly Language Programming