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.”