[2] Recommended Reading: Programming from the Ground Up
by FORMAT
‘Programming from the Ground Up’ by Jonathan Bartlett
The full book is available under the GFDL at: https://savannah.nongnu.org/projects/pgubook/
This recommendation is suited for any reader looking to learn how a computer actually works. This is a book that teaches programming a little differently than most other books, but still manages to be a worthwhile read for both experienced and upcoming programmers alike. Most programming material is ‘top to bottom’ in terms of the abstractions taught; a novice is typically expected to learn abstractions and only learn how they work at a much later date. Books such as this one challenge that idea by working in the opposite direction. Programming basics are taught at the low level and high level languages are discussed later.
Topics covered include:
- basic computer architecture and terminology, including processors, memory, and addressing modes
- assemblers
- algorithmic problem solving
- function calling conventions
- recursion
- basic file I/O
- basic error handling
- libraries and dynamic linking
- basic memory management
- computer numbering systems
- program optimization
- system calls
- assembler language idioms
- a short introduction to using GDB
In closing, this book is a valuable resource for anyone looking to break into the daunting world of assembler languages. GNU tools are used, along with AT&T syntax; I’ll simply say that this is a plus for anyone who is confused. The x86 instruction set is used for this book, which is par for the course with books on this subject. For experienced assembler language programmers, this book may prove a nice resource. Regardless of skill level, I think you’ll enjoy reading it.
It’s recommended that you download the source for this work as well, to have easier access to the example programs.