Introduction to Assembly Language Programming

2nd Edition

First edition Web site is here.
Author's other books

Fundamentals of Computer Organization and Design

Guide to RISC Processors

Hierarchical Scheduling in Parallel and Cluster Systems

This book approaches assembly language programming from the high-level language viewpoint. It focuses on the assembly language features that are required to efficiently implement high-level language constructs. Unlike other books on the subject, it explains the rationale for the features available in the assembly language. Another unique feature is that this book covers assembly language programming of both Intel IA-32 (e.g., Pentium) and RISC (MIPS) processors.

The reader is assumed to be familiar with a high-level language such as C (only the basics are needed). But you don't need to know material on computer organization. All required material is introduced in the book. Since the goal is to introduce programming in assembly language, which is not easy to learn, plenty of examples are used to teach the concepts. Source code for all the examples in the text is available from this web site for hands-on learning experience (see below for details on how you can download the NASM and MIPS assemblers).

More Details

See Preface and Table of Contents PDF files for more details.

If you want even more detailed information about the contents of each chapter, take a look at the slides (avaialble by Summer 2005).

See below for Teaching support available for the book.


The book is available from and Barnes and Noble.

Source Code

You can run the assembly language programs from the book under NASM/LINUX, NASM/Windows, or MASM/Windows.


You can get the source code for the all the examples and the I/O routines (IO.OBJ and IO.MAC) in a single ZIP file. This is a copy of the programs from the textbook. These programs require NASM under LINUX.

NASM/Windows Version

Most of the programs from the book can be assembled and run under NASM/Windows XP. A few LINUX-specific programs are exluded in this version.

If you are interested, copy this ZIP file. Here are the step-by-step download/installation instructions.

MASM/Windows Version

Most of the programs from the book can be assembled and run under MASM and Windows XP. A few LINUX-specific programs are exluded in this version.

Copy this ZIP file to run the programs using MASM under Windows XP. Here are the step-by-step instructions to download and install MASM/LINKER.


NASM (for the Intel 32-bit processors like Pentium)

SPIM (A MIPS simulator)

MASM (Microsoft assembler)

Teaching Support

Chapter-wise PowerPoint slides

Chapter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Solution manual will be available by August 2005.