Many programmers have limited effectiveness because they don't have a
deep understanding of how their computer actually works under the hood.
In Learn to Program with Assembly, you will learn to program in assembly
language - the language of the computer itself.
Assembly language is often thought of as a difficult and arcane subject.
However, author Jonathan Bartlett presents the material in a way that
works just as well for first-time programmers as for long-time
professionals. Whether this is your first programming book ever or you
are a professional wanting to deepen your understanding of the computer
you are working with, this book is for you. The book teaches 64-bit x86
assembly language running on the Linux operating system. However, even
if you are not running Linux, a provided Docker image will allow you to
use a Mac or Windows computer as well.
The book starts with extremely simple programs to help you get your
grounding, going steadily deeper with each chapter. At the end of the
first section, you will be familiar with most of the basic instructions
available on the processor that you will need for any task. The second
part deals with interactions with the operating system. It shows how to
make calls to the standard library, how to make direct system calls to
the kernel, how to write your own library code, and how to work with
memory. The third part shows how modern programming language features
such as exception handling, object-oriented programming, and garbage
collection work at the assembly language level.
Additionally, the book comes with several appendices covering various
topics such as running the debugger, vector processing, optimization
principles, a list of common instructions, and other important
subjects.
This book is the 64-bit successor to Jonathan Bartlett's previous book,
Programming from the Ground Up, which has been a programming classic for
more than 15 years. This book covers similar ground but with modern
64-bit processors, and also includes a lot more information about how
high level programming language features are implemented in assembly
language.
What You Will Learn
-
How the processor operates
-
How computers represent data internally
-
How programs interact with the operating system
-
How to write and use dynamic code libraries
-
How high-level programming languages implement their features
Who This Book Is ForAnyone who wants to know how their computer
really works under the hood, including first time programmers, students,
and professionals.