Free books on assembly

  • Programming from the Ground Up - This is an introductory book to programming and computer science using assembly language. It assumes the reader has never programmed before, and introduces the concepts of variables, functions, and flow control. The reason for using assembly language is to get the reader thinking in terms of how the computer actually works underneath. Knowing how the computer works from a "bare-metal" standpoint is often the difference between top-level programmers and programmers who can never quite master their art.
  • Graphics Programming Black Book - Michael Abrash's classic Graphics Programming Black Book is a compilation of Michael's previous writings on assembly language and graphics programming (including from his "Graphics Programming" column in Dr. Dobb's Journal). Much of the focus of this book is on profiling and code testing, as well as performance optimization. It also explores much of the technology behind the Doom and Quake 3-D games, and 3-D graphics problems such as texture mapping, hidden surface removal, and the like. Thanks to Michael for making this book available.
  • ARM Assembly Language Programming - This page is the portal to a web-based version of my 1987 book, ARM Assembly Language Programming (AALP). For this first release, I'm just making the original files and various conversions of the book available on this site, the most useful one probably being the HTML linked to above.
  • PC Assembly Language - I taught Computer Science at the University of Central Oklahoma for 10 years. During this time I taught an introductory course in PC Assembly Language programming. I grew frustrated at teaching 16-bit real mode programming and decided to change to 32-bit protected mode. However, I soon ran into a problem. I could not find a textbook that covered 32-bit protected mode assembly programming! So, I decided to write my own.
  • The Art of Assembly Language Programming - full text of the book with the exception of some chapters, great reference on MS-DOS and 80x86 instruction set.