I am always amazed at the books that No Starch Press suggests for us to review, and The Art of Assembly Language truly wasn't even on my radar. When it was suggested to me I couldn't resist the opportunity to break out of high level coding and dive into Assembly.
Wikipedia says of Assembly:
Assembly languages are a type of low-level languages for programming computers, microprocessors, microcontrollers, and other (usually) integrated circuits.
Sweet! This book will teach me how to work with microprocessors and microcontrollers! That is what I thought, and I was close.
The Art of Assembly Language from No Starch Press covers the basics of all low level programming but has a pretty heavy slant toward intel based CPUs. With support for Linux, Mac and Windows, and even FreeBSD.
The book is big, heavy and full of knowledge. It covers the HLA (High Level Assembly) which is the best match of high level coding with low level code. The author, Randall Hyde, starts with the absolute basics explaining what each part of the controller (cpu) is and what it is meant for. He explains why things are setup the way they are and even how things have changed over the history of computing.
If you are asking yourself why you need to pick up this book, take this quick little survey:
- Have you ever wondered how a computer actually works?
- Do you ever dream in code?
If you answered yes to either of those then you probably want to go get this book right now.
The Art of Assembly really opened my eyes to what goes on in the underbelly of the computer, and I have a better understanding of why my code works now. Learning HLA has truly been an experience, and it is one I think the whole world of programmers should have.