Description:Programmers learn by example and develop their skills by examining and modifying working programs. Assembly Language Using the Raspberry Pi is a complete tutorial that provides working example programs to introduce the novice to both CPU hardware and professional software development methods. Each of the 20 chapters begins with a complete sample program to examine and test, followed by a description explaining the programming techniques and instructions that are introduced. The first program is only 5 lines of code while later ones consist of over 100 lines. Every sample program is complete, but leaves room for enhancements and experimentation encouraged by the questions at the end of each chapter. ARM processor instructions and features are introduced as needed to implement the increased complexity in programming techniques. There is an emphasis on program structure and design patterns that facilitate developing maintainable code (i.e., no spaghetti code). The sample programs are documented both in flow diagrams and in comments. Over 100 illustrations are included to explain programming techniques as well as ARM and floating point instructions. Floating point format and instructions are covered extensively, but gradually introduced through a series of seven chapters covering IEEE 754, VFPv3, and NEON. Background material on subjects like binary, two’s complement, and hexadecimal appear in fourteen appendices for those who need it, without getting in the way of programmers who don’t. This book has been “classroom tested” with students having very little if any previous programming experience. The information is complete, allowing it to also be used as an independent study. All system and utility software used in the book is included in the standard Raspian Linux distribution intended to be used with the Raspberry Pi 2 and 3.Assembly language is the computer programming language closest to a computer’s “machine code language.” Learning to program in assembly language is an excellent practical “hands-on” introduction to the details of computer architecture. Although applications and systems software written in assembly language were once common, assembly language is now primarily a bridge of understanding between computer architects and software developers.