First impressions are important.
To introduce your Assembly Language programming students to the fundamental concepts of contemporary computer architecture, start with a Reduced Instruction Set Computer (RISC).
When students first encounter computer architecture, they need to begin with the basics of modern computer organization. The MIPS architecture embodies the fundamental design principles of all contemporary RISC architectures:
- All instructions are directly executed in hardware
- The rate at which instructions are issued is maximized
- Instructions are easy to decode
- Only load and store instructions reference memory
- Plenty of general purpose registers are provided (32 for MIPS)
MIPS Assembly Language Programming offers students an understanding of how the functional components of modern computers are put together and how a computer works at the machine-language level. The book begins with a datapath diagram that shows a simple implementation of the MIPS architecture, consisting of a register file, an ALU, a memory. a program counter, and an instruction register. As students progress through the text, they will elaborate on this established datapath diagram model, allowing them to visualize how the instructions are fetched and executed as they write their programs.
The Spim simulator for the MIPS architecture runs on PC's and Unix® systems. All the programming exercises are done using this simulator, which can be downloaded for free from the Internet. Using the MIPS simulator allows students to observe the contents of the registers and memory change as their programs execute. The students are not isolated by a particular operating system from experiencing and writing code dealing with:
- Memory-mapped I/0
- Interrupts and exception processing
- Delayed loads and delayed branches for a pipelined implementation
It is assumed that students using this text already have some experience in developing algorithms, and running programs in a high-level language. The skills they will learn with MIPS Assembly Language Programming offer a sound basis for advanced work in computer architectures and complex assembly languages.